/etc/profile.d 和 /etc/init.d 下的自訂腳本 - rhel6 和 rhel7

/etc/profile.d 和 /etc/init.d 下的自訂腳本 - rhel6 和 rhel7

我需要在啟動時啟動我的腳本。我讀到 /etc/init.d 和 /etc/profile.d 下的腳本是在系統啟動期間取得的。這些目錄有什麼不同?

除了上述兩種方式之外,似乎我們還可以使用 @reboot /path/to 腳本之類的條目配置 cron 來啟動服務。

請建議在系統啟動期間執行腳本的正確/有效的方法。

答案1

/etc/profile.d是一種特定於供應商的自訂 shell 會話環境(設定PATH等)的方法,通常與守護程序的啟動無關;有些人甚至會認為守護程式啟動決不應該涉及/etc/profile.d,這樣使用者 shell 自訂就不會導致守護程式無法加載,或使用不正確的環境設定(時區、區域設定等)進行載入。

/etc/init.d是 Linux 上實現的 SystemV init 系統的一部分(相較之下,Digital UNIX 將其放在 下/sbin/init.d);人們可以編寫一個適當的初始化腳本(研究現有腳本以了解如何正確執行此操作)來啟動您的守護程式。這將使您與 RHEL6 和 RHEL7 相容。

cron作業@reboot可以啟動您的守護進程,儘管systemd在RHEL7 下確實提供了比cron 的即發即棄更好的管理功能(如果守護進程崩潰會發生什麼?它應該自動重新啟動嗎?如果啟動多個實例會有多糟糕? 如果不好,只啟動一個實例需要什麼樣的鎖定?

相關內容