2009-09-08 44 views
2

我想写一个程序,应该由O.S.通知。只要该OS上的任何正在运行的进程死亡。如何在Windows和Linux中终止进程时收到通知?

如果以前存在的过程已经死亡,我不想每次都进行民意调查和比较。我希望我的程序在进程终止发生时被操作系统提醒。

我该怎么办?一些示例代码会非常有帮助。 PS:在Java/C++中寻找解决方案。

回答

1

在Unix下,您可以使用sigchld信号来获取进程死亡的通知。但是,这要求监测过程是监测过程的子过程。

在Windows下,您可能需要拥有有效的进程句柄。如果你使用CreateProcess自己产生了这个过程,你可以免费获得句柄,否则你必须通过其他方式获取。然后可以通过在句柄上调用WaitForSingleObject来等待进程终止。

对不起,我没有任何示例代码。我甚至不确定,等待Windows下的进程句柄确实等待进程终止(相对于导致进程句柄进入“信号”状态或某事的其他“重要”条件)。

+0

嗨德克,它看起来可行的办法了。我会尝试一下。谢谢。 –

相关问题