如果 /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模板。

相關內容