如果我上运行host1
外壳和我做ssh host2 some-command
,然后我关闭终端窗口(或以其他方式杀死host1
的ssh
过程)似乎对host2
的sshd
进程终止很及时。但是... some-command
发生了什么?根据它的命令,它有时会终止,但有时不会。 some-command
接收哪些信号?什么文件描述符(如果有的话)被操纵,以及如何?进程在其父进程sshd终止时发生了什么?
3
A
回答
3
它没有收到任何信号。如果它们没有以某种方式重定向,则三个标准IO流是来自ssh进程的管道,因此从stdin读取将返回EOF,写入stdout或stderr将失败并引发SIGPIPE。如果某些命令没有在标准流上执行I/O操作,它将没有理由提前终止。
0
相关问题
- 1. 后台进程在其父进程终止时被终止?
- 2. 父进程在C#中终止时如何终止子进程
- 3. 父进程终止子进程的输出是什么?
- 4. 当我们在Unix中终止一个进程时实际发生了什么?
- 5. 父母或其他进程终止进程
- 6. 父进程在Linux中被终止后为什么子进程还活着?
- 7. Python多重处理:父进程终止时终止守护进程的更好实现是什么?
- 8. 是生存进程终止
- 9. 在C中终止子进程后,父进程未完成
- 10. Python:在创建子进程后终止父进程
- 11. 在Ctrl-C上终止父进程和子进程
- 12. 超时后,终止进程及其所有子进程
- 13. 每个父进程不允许在其子进程之前终止
- 14. 线程在其父进程停止时是否会停止
- 15. 多进程守护进程不会终止在父进程退出
- 16. 停止主管进程而不会终止其他子进程
- 17. 如何从命令提示符中终止进程及其父进程
- 18. 如何启动分离进程并等待父进程终止?
- 19. 所有子进程终止后,无法运行父进程。
- 20. 终止子进程
- 21. WKWebView进程终止
- 22. 如何检查Linux进程以确定进程何时/何时终止/终止?
- 23. 终止进程在linux
- 24. GIWS在构造类时终止进程
- 25. 在进程终止时释放资源
- 26. 在进程终止时运行脚本
- 27. C:其他系统进程的捕获进程终止
- 28. 在二级进程完成时终止主进程
- 29. 为什么进程的StandardOutput只在进程终止后才接收数据?
- 30. 终止分叉进程(转发端口)
你确定吗? 'ssh'可能会创建一个终端,又名伪tty(取决于选项),如果有的话,我希望其他进程为其tty控制终端接收'SIGHUP'。 –
啊哈,但那是关键。 'ssh somehost some-command' does * not * allocate a pty!它只是一个管道。你必须用'-t'来请求一个pty。因此,我所看到的导致我问这个问题的行为(我的工作没有收到任何信号,只是他们的标准输入关闭)是合理的。 – Glyph