我正在运行一个流程,我希望从中获得另一个流程终止的通知。 在windows中我们可以使用WaitForSingleObject,通过传递我们所处理的终止进程的句柄。我是Linux世界的新手,请提出一些方法。
答案 0 :(得分:1)
值得查看supervisord
答案 1 :(得分:1)
在Linux(实际上大多数是* NIXen)上,您只能等待当前进程的子进程,除非您具有root权限(或允许一般跟踪的有效功能) - 这可以通过功能系统进行安排授予完全root权限,但需要有意识地配置它...),您可以使用ptrace()
附加到任意进程以监视它们。
答案 2 :(得分:0)
如果您可以在子进程中获取子进程的进程ID,则可以将其保存到子进程内的文件中,并在父进程中从那里读取它。然后在父进程中,您可以以ps ax | cut -b 1-5 | grep fooprocessid
以固定间隔轮询子进程的存在。当然存在更优雅的方法,但这适用于任何编程语言,在子进程中可以获取进程ID,在父进程中可以执行命令。
如果您知道可以使用ps
(或top
)找到的一些详细信息,并将子进程与所有其他进程区分开来,那么您甚至不需要进程ID子进程,ps ax | grep foo
就足够了。或者ps
和其他一些参数,取决于你对儿童过程的了解细节。
答案 3 :(得分:0)
您可以使用多种Linux API来执行此操作。以下是其中一些:
确实有太多细节无法在一个StackOverflow答案中正确比较这些选项,但是我已经written about this in detail on my blog。