linux中可执行文件的主管

时间:2012-07-20 18:56:32

标签: c++ linux monitor supervisor

我目前正在开发一个可在linux上运行的可执行文件。我想有一个监督这个可执行文件的主管,并重新启动它被杀死。这样做有什么命令吗?或建议我做一些方法

注意:代码在c ++中

提前致谢

3 个答案:

答案 0 :(得分:1)

此主管已存在且始终在运行。它被称为init,大多数版本由/etc/inittab中的条目控制。

答案 1 :(得分:1)

Monit附带了大多数Linux发行版,可以做你想要的,还有更多,比如检查内存,磁盘空间,连接......,

docs你可以在你的monit配置文件中有这样的东西:

check file with path /cifs/mydata
  if does not exist for 5 cycles then exec "/usr/bin/mount_cifs.sh"

答案 2 :(得分:0)

最简单的方法是自己生成进程,等待它退出,然后重新启动它。最简单的方法就是在shell脚本循环中。但一般来说,这种看门狗架构往往是脆弱和微不足道的。为什么你的过程会死?重启时会发生什么?系统中其他地方是否保留了状态,假设您的流程的当前“版本”与过去某个时间相同?

一般来说,这还没有完成。几乎总是最好将您的流程设计为处理一个事件/命令/请求的一次性流程,或者强健地编写它以便可以假定它始终处于活动状态。如果你无法做到这一点,只需将它包装在一个shell循环中。