Python ruby:从分支子进程运行命令
我有以下代码片段:Python ruby:从分支子进程运行命令,python,ruby,ssh,io,fabric,Python,Ruby,Ssh,Io,Fabric,我有以下代码片段: job1 = fork do ret = `some_bash_script_running_python_fabric_task` end Process.detach(job1) 此代码旨在对进程进行后台监控,以便父进程退出,而子进程继续在后台运行 结果,我得到一个python异常,声明termios.error:(5,'Input/output error') 我发现避免父进程退出可以修复这种情况,如下所示: job1 = fork do ret =
job1 = fork do
ret = `some_bash_script_running_python_fabric_task`
end
Process.detach(job1)
此代码旨在对进程进行后台监控,以便父进程退出,而子进程继续在后台运行
结果,我得到一个python异常,声明termios.error:(5,'Input/output error')
我发现避免父进程退出可以修复这种情况,如下所示:
job1 = fork do
ret = `some_bash_script_running_python_fabric_task`
end
sleep 30
有人可以帮忙吗?
“提前感谢”结果是将stdin从父进程重定向到子进程 见下文: 这就是解决方案:
read_io, write_io = IO.pipe
job1 = fork do
write_io.close
STDIN.reopen(read_io)
puts `fab example`
end
Process.detach(job1)
read_io.close
write_io.close
操作系统?我用
sleep 10运行了一个示例;linux控制台中的ls
脚本没有任何问题。操作系统是linux。该脚本实际上是一个结构脚本,它在远程机器上运行ssh命令