linux – 在硬重启后解决过时的pidfile问题导致我的守护进程死机

我在(VMWare)VM上使用Red Hat Linux(RHEL5).我写了一个守护进程,它应该一直保持运行并自动在启动时运行.

昨晚VM主机出现了无法恢复的硬件问题,VM突然停止运行.当它回来时,我的守护进程没有启动,因为pidfile仍然存在.

显然这被称为The Stale pidfile Syndrome,但我不确定什么是减轻它的最佳长期方法.我认为/etc/rc.d*中的启动脚本应该在启动守护进程之前删除pidfile,但是/etc/init.d中的服务管理脚本应该保持不变,所以service mydaemon start之类的东西不会破坏了pidfile.

/etc/rc.d/rc6.d只是在/etc/init.d/中有一个符号链接到脚本,所以如何才能改变它在启动时的行为?我可以在rc.d dirs中创建一个具有更高优先级的附加脚本,但它看起来很hacky.有人还建议添加逻辑,如“正常运行时间不到1分钟,删除pid文件”,但这似乎也很麻烦.

任何想法或解决方案或最佳做法?

解决方法

使用 daemontools并查看 Process Management.

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...