Background Job "Stopped" with SSH

来源:互联网 发布:泗洪网络问政12345 编辑:程序博客网 时间:2024/05/12 15:28

运行了一个后台程序,此程序调用SSH远程执行另外的任务,当多个这样的后台程序执行的时候,状态经常从Running 变为Stopped,导致程序中断。

解决办法,覆盖三个I/O,具体参考:http://en.wikipedia.org/wiki/Nohup

Overcoming hanging

Note - Nohupping backgroundedjobs is typically used to avoid terminating them when logging off from aremote SSH session. A different issue that oftenarises in this situation is that ssh is refusing to log off("hangs"), since it refuses to lose any data from/to the backgroundjob(s).[6][7] Thisproblem can also be overcome by redirecting all three I/O streams:

nohup./myprogram > foo.out 2> foo.err < /dev/null &

Also note that a closingSSH session does not always send a HUP signal to depending processes. Amongothers, this depends on whether a pseudo-terminalwasallocated or not.[8]