如果 /etc/init.d 中没有提及某个服务,为什么会启动该服务?

如果 /etc/init.d 中没有提及某个服务,为什么会启动该服务?

全新安装 Fedora 17 和 后distcc-server,我执行了一次service distccd start,成功完成。

man service表示它只会运行distccd位于 的脚本/etc/init.d/distccd,但该文件不存在。 chkconfig似乎也不知道distccd,这可以通过 中没有相关文件来证实/etc/rc[0-6].d。那里存在一个/etc/sysconfig/distccd包含 distcc 守护进程运行选项的文件,但我似乎找不到任何链接service到的/etc/sysconfig内容。

当我打字时如何service知道该做什么service distccd start

另外,我了解到 Fedora 17 可能会重定向servicesystemd/ systemctl。即使是这样,我仍然没有distccd/etc/systemd/{system,user}.

答案1

/etc/systemd用于用户定义服务。系统定义服务的默认位置是/lib/systemd/system/。您可以在 中覆盖系统定义服务/etc/systemd

有关 systemd 的更多信息,请查看systemd 的 Fedora 维基页面或者看看系统文档

答案2

AFAIK,service依赖于/etc/init.d.

distccd 可能没有与 init 脚本一起打包。尝试以下操作将服务作为守护进程启动:

distccd --daemon

如果有效,您可以创建自己的脚本来/etc/init.d/distccd触发上述命令,然后您就可以将其视为系统服务service distccd start。用作/etc/init.d/skeleton模板。

相关内容