Solaris SMF 在 RHEL6 上的新貴
我正計劃從 Solaris/x86 遷移到 RHEL6。此遷移的一部分是將服務從 SMF 遷移到 RHEL6 等價物,這似乎是新貴。雖然似乎仍然支持 init.d 腳本,但我想利用更複雜的 init 守護程序,特別是對於作業監督(重新啟動等)等功能。我想就以下幾點收集一些想法:
upstart 是否是一個足夠的工作主管,即它是否排除了對像 daemontools/supervise 這樣的獨立管理器的需求?
與典型的 init.d 腳本相比,Upstart 腳本看起來非常簡單。如果我將 init.d 腳本移植到 Upstart,是否可以只執行“exec /etc/init.d/myjob start”?這包括 RHEL 安裝的程序,如 httpd。
upstart 是否對 pid 文件做任何事情,它對程序的分叉模型有什麼期望?
Upstart 的流程管理方面是否有任何直接的指南……我的意思是控制重啟的條件?例如,在程序進入維護狀態之前重啟程序多少次,或者忽略受監督程序的子程序中的錯誤/核心轉儲。
任何其他相關的想法或指南將不勝感激。
TIA
不要為在 RHEL6 上使用 upstart 的任何“高級”功能而煩惱。它僅使用 upstart 作為原始 SysVinit 的“替代品”,並且僅使用舊式 init 腳本。RHEL 本身並沒有利用任何新的 upstart 功能,而且 RHEL7 不包括 upstart。事實上,除了 Ubuntu(只是因為他們發明了它)和 Debian 之外,現在幾乎所有人都拋棄了新貴。RHEL7 使用 systemd,許多其他現代 Linux 發行版現在都在使用它,而 Debian 正在切換中。
為了讓您的腳本適應未來,請編寫一個“正常”的初始化腳本;systemd 也支持這些以實現向後兼容性,儘管與 RHEL6 中的新貴不同,systemd 的新功能實際上在 RHEL7 中使用。Internet 上有許多編寫 SysVinit 腳本的教程;Fedora 項目提供了一個非常好的。當您遷移到 RHEL7 時,您可以根據需要切換到 systemd 單元文件。