我想知道持续监控和重启流程的最佳实践解决方案是什么,因为有多种方法可以实现。
其他信息: 我有一个使用多个进程工作的unix程序。这是一个主要过程,它始终首先启动,不会在不停止程序的情况下死亡或终止。
然后我产生了多个"模块"流程,负责一些工作并通过主要流程进行沟通。这些模块有时会因为异常而死亡,并且因为它是一个外部程序,我无法解决问题,所以如果它们死了就必须重新启动它们。
我做了一个程序来检查是否有任何模块死了并重新启动它们,但是我需要手动运行它。我的程序检查模块的pid文件是否存在,以及它们是否监听特定的tcp端口。如果pid文件不存在或者套接字无法建立连接,则会重新启动模块。
到目前为止我的想法:
如果我使用守护进程方法,我应该如何通过我的界面与守护进程通信? (套接字,或者如果守护程序收到特定信号则会读取的文件)
通常我会选择守护进程,因为它似乎是尽快重启模块的最佳实践方法(cron每分钟运行一次),但我想从更有经验的用户那里得到一些意见。 (我以前从未做过这样的事情,并且要求不伤害任何人:D)
如果这些问题在其他地方得到解答,我道歉,但我找不到任何相关问题。
P.S。如果我忘记了某些内容或者您需要更多信息,请随时提出。 :)