繁体   English   中英

使用ssh在后台执行远程脚本不会立即退出

[英]Using ssh to execute a remote script in the background doesn't exit immediately

为什么跟随 ssh 命令没有立即退出。 相反,它会在 1m 后退出

ssh -vvv <usr>@<ip> 'sh -c "sleep 60 &"'

但是我确实告诉 shell 在后台运行 sleep 命令,我不知道为什么

这是因为sh进程打开的文件描述符间接连接到您的 ssh 会话的 tty。
sleep命令不会在stdin上接收任何内容,也不会将任何内容发送回stdout/stderr 但是,从sh继承的 FD 仍然是打开的。

出路是通过 ip/op/err 重定向关闭那些 FD。

ssh -vvv <usr>@<ip> 'sh -c "sleep 60 &" &>/dev/null </dev/null'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM