小编nat*_*rio的帖子

对 /etc/init.d 与 /lib/systemd/system 服务感到困惑

我正在尝试在 Debian 8.5 机器上运行 MongoDB。当我安装这个包(从 percona.com 预先构建)时,我注意到以下文件:

/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Run Code Online (Sandbox Code Playgroud)

我知道它/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
Run Code Online (Sandbox Code Playgroud)

据我了解,这可以通过sudo systemctl start mongod.

  • 我不明白是否在启动时调用。

  • 我不明白为什么需要这些“服务”文件中的两个,以及如何摆脱一个(可能是 /lib/systemd 中的一个,因为它简单得多)。

  • 我不明白这两者之间是否有任何关系。

  • 我也读过它也systemctl适用于init.d脚本,在这种情况下,我不明白这两个文件中的哪一个将由systemctl mongod start.

认为有一些冗余,我应该只选择两种方式之一。我想确定它是

  • 在启动时调用 …

linux init-script systemd sysvinit

18
推荐指数
1
解决办法
9397
查看次数

标签 统计

init-script ×1

linux ×1

systemd ×1

sysvinit ×1