我已经用c语言编写了一个Linux守护进程,现在我的问题是,如果用户杀死了守护进程,那么守护进程必须自动重新启动,我如何在守护进程中实现它。
类似::在关机事件接收>重新启动守护进程
示例场景 守护进程是长寿的。通常,在系统启动时创建一个守护进程并运行,直到系统关闭,例如:一个名为XXX的守护进程,它执行重要的例程,比如监视特定日志文件的函数,如果发现在高安全应用程序中警告管理员,如果这个守护进程被杀死,它需要自动重新启动。
发布于 2012-11-02 17:50:06
如果用户使用kill通过pid关闭守护进程,则无法从守护进程内部重新启动它。(因为大多数用户在某个地方读到需要始终使用kill -9 -这在几乎所有情况下都是个坏主意,但他们仍然这么做)
如果您可以保证您的用户不使用kill -9 (您也不能),那么您可以设置一个信号处理程序来干净地退出并重新启动守护进程。
否则,最好的选择是让另一个进程在守护进程死掉或终止时重新启动它。查看守护进程工具或只使用一个简单的shell脚本:
while true; do
daemon
sleep 1
done发布于 2012-11-02 18:12:35
这是个错误的问题。监视和重新启动(这就是您要问的)是一种容错技术。您不会使用容错来纠正人类机器操作员的故意和故意的决策。如果您不希望用户终止您的进程,请告诉他们不要这样做。如果他们忽视它,那么他们就破坏了他们的系统。标准系统守护进程一般不重生,为什么要你的?
发布于 2012-11-03 18:41:13
我在想,cron是否是验证守护进程活动的一个好/安全的主意。
例如:
每隔30分钟启动一个脚本来测试守护进程是否处于活动状态。
$ */30 * * * * <script to verify daemon activity>脚本(伪代码):
if daemon is active
then
:
else
restart daemon
fihttps://stackoverflow.com/questions/13200342
复制相似问题