我只是注意到,如果我执行ssh user@remote_host tail -f /some/file,tail -f /some/file即使 ssh 连接关闭,它也会继续在 remote_host 上运行!
因此,经过多次连接和断开连接后,运行的次数会tail -f /some/file增加。tail -fssh 连接关闭时如何实际终止?
为什么ssh -t不等待后台作业完成?
例子:
ssh user@example 'sleep 2 &'
Run Code Online (Sandbox Code Playgroud)
这按预期工作,因为 ssh 在 2 秒后返回,而
ssh user@example -t 'sleep 2 &'
Run Code Online (Sandbox Code Playgroud)
不等待sleep完成并立即返回。
任何人都可以解释这背后的原因吗?有没有办法ssh -t在返回之前等待所有后台进程完成?
我的用例是我用 启动一个脚本ssh -t,这个脚本启动几个后台作业,这些作业在主脚本完成后应该保持活动状态。随着ssh -t这是不可能的为止。