在ruby标准库中,popen返回一个有pid方法的对象, 在eventmachine中,popen返回一个Connection对象,该对象不包含进程ID信息。
演示代码:
require 'eventmachine'
def work
s = EM.popen('ls')
puts s.pid # how to get new process's pid?
end
EventMachine.run {
work
EM.stop
}
答案 0 :(得分:0)
当EM.popen返回标准的EM Connection对象时,您可以使用s.get_pid
来获取子进程的pid。
http://eventmachine.rubyforge.org/EventMachine/Connection.html#get_pid-instance_method