我目前正在开发一个在 linux 上运行的可执行文件。我想要一个监督这个可执行文件并重新启动它被杀死的主管。有没有这样做的命令?或建议我一些方法来做到这一点
注意:代码是c++
这个主管已经存在并且一直在运行。它被称为init
,并且大多数版本都由 中的条目控制/etc/inittab
。
最简单的方法就是自己生成进程,等待它退出,然后重新启动它。最简单的方法就是在 shell 脚本循环中。但是,一般来说,这种看门狗架构往往是脆弱和有故障的。为什么你的进程会死掉?重新启动时会发生什么?系统中的其他地方是否保留了假设您的流程的当前“版本”与过去某个时间相同的状态?
通常,这只是没有完成。几乎总是最好将您的流程构建为一次性处理一个事件/命令/请求,或者健壮地编写它以便可以假定它始终处于活动状态。如果你不能让它工作,只需将它包装在一个 shell 循环中。