如何获取不是Ruby中当前进程的进程的父进程ID?
我已经检查了Ruby的Process模块,但它似乎只提供了一种访问当前进程的PPID的方法。
我还检查了谷歌有关该主题的任何内容,但前两页似乎只包含有关如何使用上述过程模块的链接。
我希望这样做而不必过多依赖底层操作系统,但无论如何都有效。
答案 0 :(得分:3)
外壳:
1.9.3p429 :001 > `ps -p 7544 -o ppid=`.strip
=> "7540"
答案 1 :(得分:3)
Process.ppid
返回父进程ID。
http://ruby-doc.org/core-2.4.1/Process.html#method-c-ppid
答案 2 :(得分:1)
您可以在变量中记住它:
parent_pid = Process.pid
Process.fork do
child_pid = Process.pid
puts parent_pid, child_pid
# do stuff
exit
end
Process.wait
# 94791
# 94798
或者,如果您需要有关父进程级别的信息:
parent_pid = Process.pid
child_pid = Process.fork do
# do stuff
exit
end
Process.wait
puts parent_pid, child_pid
# 6361
# 6362