在我的 Ruby 应用程序中,我试图提出一种万无一失的跨平台方法,以确保父进程的子进程在父进程被杀死时被杀死(参见这个问题)。
我正在探索的一种可能性是产生一个单独的进程来监视父进程并在父进程死亡时杀死子进程的想法。我已经想出了一种有效的方法来让这个监控进程知道父进程何时死亡,但是现在我需要一种方法来监视子进程,这样如果子进程在父进程之前死亡,监控进程就可以退出。请注意,“子进程”是监视进程父进程的子进程,而不是监视进程本身。
所以我需要知道的是:给定某个进程的 PID,我如何以跨平台的方式检查该进程是否仍在运行(或者更好的是,在它死亡时得到通知)?(例如适用于 Linux 和 Windows。)