【发布时间】:2011-08-21 07:34:04
【问题描述】:
我需要 Nokia N900 - Meego Linux 中的一个程序,如果它死了它必须自动重启,我该怎么做?
我想在'x11vnc'上使用它
如果进程被任何其他进程杀死,也可能再次启动该进程,然后再次重新启动
【问题讨论】:
标签: linux shell process terminal keep-alive
我需要 Nokia N900 - Meego Linux 中的一个程序,如果它死了它必须自动重启,我该怎么做?
我想在'x11vnc'上使用它
如果进程被任何其他进程杀死,也可能再次启动该进程,然后再次重新启动
【问题讨论】:
标签: linux shell process terminal keep-alive
我最终使用了 daemon,它是从 apt-get 安装的。它有一个参数 -r 如果它死了应该重新启动我的命令。所以我最后的命令是:
daemon -u www-data -n arbitrary_name -r -X "ffmpeg blah blah blah"
【讨论】:
当您具有 root 访问权限时,按照 blinry 的建议使用 inittab 是很好的选择。
当你没有 root 访问权限时,你可以在 screen 中运行一个 shell 并让它这样做:
$ while true; do run_program; done
这是假设您的“run_program”脚本没有进入后台,否则循环将无限期地继续生成“run_program”实例。
【讨论】:
将您的进程添加到 /etc/inittab,并让 init 在它终止时重新启动您的进程。
即
mp:2345:respawn:/usr/app/bin/my_process
有关详细信息,请参阅 inittab(5)。
(感谢 Lew Pitcher,http://forum.soft32.com/linux2/process-alive-ftopict10675.html)
【讨论】: