Linux
Red Hat 6.7 中的服務崩潰後 inittab 未重新啟動服務
注意:我正在執行 Red Hat 6.7
我有一個使用 Linux init 系統配置的服務,可以在機器啟動時將程序作為服務啟動。這是通過從命令行執行此一次性配置來完成的:
ln -snf /home/me/bin/my_service /etc/init.d/my_service chkconfig --add my_service chkconfig --level 235 my_service on
當作業系統重新啟動時,服務會按預期啟動。
如果服務 (my_service) 崩潰,我還需要重新啟動服務。根據我的閱讀,我需要做的就是在 /etc/inittab 中添加一個如下所示的條目:
mysvc:235:respawn:/home/me/bin/my_service_starter
my_service_starter 的樣子:
#!/bin/bash /home/me/bin/my_service start
my_service 腳本如下所示:
#!/bin/bash "/usr/java/bin/java" /home/me/bin/my_service.jar start
我的理解是,當init系統檢測到my_service沒有執行時,它會嘗試通過執行“my_service_starter”來重啟它。
但是,這似乎不起作用。即作業系統重新啟動時服務不會啟動。
我需要了解如何告訴 Linux 初始化系統在服務崩潰時重新啟動我的服務。
RedHat 6 使用upstart作為初始化系統。
inittab
提供的文件的開頭是以下行:# inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
您需要在(注意:NOT)中創建正確的
init
定義。/etc/init
/etc/init.d
例如(但可能需要調試)
/etc/init/myservice
start on runlevel [2345] stop on runlevel [S016] respawn exec /home/me/bin/my_service_starter