检查(非子)进程是否正在运行的跨平台方法

时间:2013-08-14 14:28:46

标签: ruby

在我的Ruby应用程序中,我试图想出一种简单且跨平台的方法来确保父母的子进程在父进程中被杀死(参见this question)。

我正在探索的一种可能性是产生一个单独的进程,该进程监视父进程并在父进程死亡时终止子进程。我已经想出了一种有效的方法让这个监控过程知道父母何时去世,但现在我需要一种方法来监视子进程,这样如果孩子在父母之前死亡,监控过程就可以退出。请注意,“子进程”是监视进程父级的子级,而不是监视进程本身。

所以我需要知道的是:鉴于某个进程的PID,如何以跨平台的方式检查该进程是否仍在运行(或者更好,在它死亡时得到通知)? (例如,适用于Linux和Windows。)

1 个答案:

答案 0 :(得分:1)

最简单的方法是test which operation system your ruby is running,然后通过命令行在linuxwindows上使用简单的测试来检查您的程序是否正在运行。

最简单的方法往往不是最好的方法。然而,准备面对一些奇怪的代码,例如,how to simple kill a process on windows。这是你的电话。

我希望有人说我错了,并且有一种很好的方法来管理跨平台的ruby流程。请做。