如何获取不是 Ruby 中当前进程的进程的父进程 ID?
我检查了 Ruby 的 Process 模块,但它似乎只提供了一种访问当前进程的 PPID 的方法。
我还检查了谷歌有关该主题的任何内容,但前两页似乎只包含有关如何使用上述流程模块的链接。
我希望在不必过多依赖底层操作系统的情况下做到这一点,但无论如何都行得通。
如何获取不是 Ruby 中当前进程的进程的父进程 ID?
我检查了 Ruby 的 Process 模块,但它似乎只提供了一种访问当前进程的 PPID 的方法。
我还检查了谷歌有关该主题的任何内容,但前两页似乎只包含有关如何使用上述流程模块的链接。
我希望在不必过多依赖底层操作系统的情况下做到这一点,但无论如何都行得通。
脱壳:
1.9.3p429 :001 > `ps -p 7544 -o ppid=`.strip
=> "7540"
Process.ppid
返回父进程 ID。
http://ruby-doc.org/core-2.4.1/Process.html#method-c-ppid
你可以在一个变量中记住它:
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