Linux

Red Hat 6.7 中的服務崩潰後 inittab 未重新啟動服務

  • September 9, 2016

注意:我正在執行 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

引用自:https://unix.stackexchange.com/questions/308885