从ruby中的进程ID获取进程状态和退出代码

时间:2013-01-14 00:06:24

标签: ruby process pid

我想在Ruby中创建s子进程以运行并与其他程序交互,我需要使用Process.spawn,因为Open3.popen3在Windows中不起作用。 Open3.popen3为您提供了一个很好的等待线程对象,允许您通过wait_thr.status检查进程是否已完成,一旦完成,它允许您通过wait_thr.value.exitstatus获取退出代码。

Process.spawn只为您提供pid,因此我需要一种方法从流程ID中获取该数据。我查看了ProcessKernel模块,一无所获。 Process::Status拥有我需要的一切,但我找不到任何有关如何从pid创建一个信息的信息。

如何判断流程何时完成以及退出状态是什么?

1 个答案:

答案 0 :(得分:1)

我相信你可以使用win32-api gem

然后,您可以使用win32 API中的GetExitCodeProcess函数。