1
我通過system(run_command)
如何獲得外部進程的
跑到外部python
腳本的PID,但我想要得到的運行python腳本的PID,
所以我試圖用fork
並得到PID ,
但返回的PID是fork的block的pid,而不是python進程。
我怎麼能得到Python進程的PID,謝謝。
arguments=[
"-f #{File.join(@public_path, @streaming_verification.excel.to_s)}",
"-duration 30",
"-output TEST_#{@streaming_verification.id}"
]
cmd = [ "python",
@automation[:bin],
arguments.join(' ')
]
run_command = cmd.join(' ').strip()
task_pid = fork do
system(run_command)
end
(更新)
我試圖使用產卵方法。
重新調整的PID仍然不是正在運行的Python進程的PID。
我得到了PID 5177,但實際PID控制,我想,是5179
run.sh
./main.py -f ../tests/test_setting.xls -o testing_`date +%s` -duration 5
sample.rb
cmd = './run.sh'
pid = Process.spawn(cmd)
print pid
Process.wait(pid)
嗯,我試過你的解決方案,但它沒有爲我工作。我用你的解決方案更新了這篇文章。我誤解了你的探索嗎? – newBike
@poc,啊..你通過shell運行命令。 'pid'將是shell的pid,而不是命令。您應該直接調用該程序來獲取進程的PID。 – falsetru