解决方法
您可以通过以下方式获取当前流程:
Process.pid
详见http://whynotwiki.com/Ruby_/_Process_management.
然后,您可以使用特定于操作的命令来获取子代码.在基于unix的系统上,这将是一些事情
# Creating 3 child processes. IO.popen('uname') IO.popen('uname') IO.popen('uname') # Grabbing the pid. pid = Process.pid # Get the child pids. pipe = IO.popen("ps -ef | grep #{pid}") child_pids = pipe.readlines.map do |line| parts = line.split(/\s+/) parts[2] if parts[3] == pid.to_s and parts[2] != pipe.pid.to_s end.compact # Show the child processes. puts child_pids
我承认这可能不适用于所有unix系统,因为我相信ps -ef的输出在不同的unix风格上略有不同.