我是Linux世界的新手,对于我可能会说的任何错误表示抱歉。
我试图在Debian 8.5机器上运行Mongo DB。安装软件包(从percona.com预先构建)后,我注意到以下文件:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
关于/etc/init.d/mongod
我知道update-rc.d
在启动时/在其他特定系统状态下,这称为(只要通过进行注册)(不想对此有所了解,我正在吸收大量信息,这似乎不太重要)。
这对我来说很好。该脚本进行了大量初始化,最后启动了mongo守护程序。似乎有“触发”来启动,停止,重新启动等,据我所知,我可以通过触发这些触发sudo service mongod <action>
。
关于/lib/systemd/system/mongod.service
这个文件似乎做同样的事情(即运行mongo),但是配置更少,ExecStart参数中只有一行:
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
据我了解,这可以通过触发sudo systemctl start mongod
。
我不知道是否在启动时调用它。
我不明白为什么需要两个“服务”文件,以及如何摆脱其中一个文件(可能更简单,所以可能在/ lib / systemd中一个文件)。
我不明白两者之间是否有任何关系。
我也阅读了
systemctl
适用于init.d
脚本的内容,在这种情况下,我不了解这两个文件中的哪个将由触发systemctl mongod start
。
我认为有些冗余,我应该只选择两种方式之一。我想确定的是
- 开机时叫
- 可通过命令(如
service
或systemctl
)调用。
你能帮我弄清楚我的想法吗?在一些评论的帮助下,我可能可以集中精力并缩小问题范围。
systemctl disable mongod
; 然后将mongod.service重命名为mongod-backup.service; 然后systemctl daemon-reload
。您认为这是正确的吗?我读过您不应该修改/ lib / systemd / system /中的文件,但是如果不重命名,systemctl会一直忽略init.d脚本。