/etc/init.d/script 或 /etc/inittab - 在骰子上重生

/etc/init.d/script 或 /etc/inittab - 在骰子上重生

我有一个守护进程/服务(milter-regex),它快要死了。我只是暂时使用它(几个月),所以不要太在意,但我希望它在死机后重新启动。

这是一个 init.d 脚本。 'service milter-regex start' 等。初始化脚本位于 /etc/init.d/milter-regex

我知道如果 /etc/inittab 中有什么东西,如果它死了,它会自动重生。 init 脚本也应该执行此操作,还是需要将其放入 inittab 中?

它可能无法重新启动,因为它没有清理过时的袜子文件,我今天将修复该文件,但我想我还是会问这个问题。

在 RHEL4 上运行(是的,旧的)

谢谢,布洛克

答案1

我必须为 RHEL6 解决一个非常类似的问题。 (此外,不仅有一个命令,还有一连串命令。)因为我想继续使用脚本/etc/init.d,所以我编写了一个小工具pipexec:如果子进程终止,这将重新启动它,并且可以轻松集成到/etc/init.d脚本中,因为例如它还支持 pid 文件处理。

例子:

$ pipexec -p /var/run/whatsoever.pid -s 5 -- /opt/bin/whatsoever

创建 pid 文件,运行/opt/bin/whatsoever.当whatsoever异常终止时(例如通过信号),pipexec等待5秒并重新启动它。

亲切的问候 - 安德烈亚斯

答案2

当服务崩溃时,init.d 中的脚本不会自动重新运行。如果您想要做最少的工作来确保它运行,inittab 可能是您最好的选择。不过这很恶心,几乎和仍然运行 RHEL 4 一样恶心。

相关内容