当我启动执行长时间运行的命令的SSH会话时,使用Ctrl+ C(SIGINT)处理会发生什么?
我可以看到SSH会话已关闭,但是我不确定谁先获得了SIGINT:是吗...
远程长时间运行的命令?也就是说,(a)调用远程命令中的信号处理程序并停止远程命令,(b)生成它的外壳程序检测到命令已停止,并且也停止(c)远程sshd检测到外壳程序已停止,所以它关闭了连接
要么
本地ssh接收信号,并关闭连接。
我认为(1)正在发生,但想确定。
在这种情况下,我也不确定SIGINT的外壳处理会发生什么情况。例如,如果我...
ssh remote 'while true ; do sleep 1 ; date ; done'
和Ctrl+ C,然后断开远程连接。有没有一种方法可以在Ctrl+ 之后仍然有效的shell下运行远程命令C?也就是说,在这种情况下,停止循环并允许我继续在远程Shell上工作吗?
ssh remote command
相对于ssh remote
)被杀死(在本地)。远程端可能会(取决于操作系统)一直运行,直到尝试读取或写入关闭的套接字为止。如果要将包括ctrl-C在内的所有击键都传递给遥控器,请使用ssh remote
。