当使用SSH将命令发送到远程服务器时,如果SSH连接中断,则进程继续运行。 如果SSH连接结束,有什么办法可以杀死subprocess?
例:
root@local:~# ssh root@server sleep 100 & [2] 15762 root@local:~# kill 15762 [2]+ Stopped ssh root@server sleep 100
运行以上命令后,sleep命令仍在远程主机上运行。
有任何想法吗?
首先不要在后台运行它。 因此,当ssh conn死亡的时候,这个过程也将被杀死。
jdizzle的评论给了我一个想法:在一个脚本中运行你的命令,并用“陷阱”处理信号( http://gd.tuwien.ac.at/linuxcommand.org/wss0160.php )
会这样吗?
欢呼声,漩涡
通过SSHlogin,运行ps -ef | grep命令名并杀死进程?