如果我在host1
上运行了一个shell并且ssh host2 some-command
,那么我关闭终端窗口(或以其他方式终止ssh
上的host1
进程) sshd
上的host2
进程非常及时终止。但是...... some-command
会发生什么?根据它的命令,它有时会终止,但有时不会。 some-command
收到什么信号?操作了哪些文件描述符(如果有的话)以及如何操作?
答案 0 :(得分:4)
它没有收到任何信号。如果它们没有以某种方式重定向,则三个标准IO流是进出ssh进程的管道,因此从stdin读取将返回EOF并且对stdout或stderr的写入将失败并引发SIGPIPE。如果some-command不对标准流进行I / O操作,则没有理由提前终止。
答案 1 :(得分:0)