在一些虚拟机上,看起来每个ssh会话在退出时都会成为孤立的进程。 我可以通过login到机器上,然后退出或^ D,然后用ps -elf |来重现它 grep解散我有一个更多的SSH进程。 我们的监控是使用ssh很多,所以在早上有成百上千的孤儿僵尸,而在大约20个虚拟机上
这是一个ps输出的例子:
5 Z user 3197 1 0 80 0 - 0 exit 10:00 ? 00:00:00 [sshd] <defunct>
我试着做一个父(sshd)strace来看,这是当我退出ssh会话的输出:
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24025, si_status=255, si_utime=0, si_stime=2} --- wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 255}], WNOHANG, NULL) = 24025 wait4(-1, 0x7ffc0d57901c, WNOHANG, NULL) = 0 rt_sigaction(SIGCHLD, NULL, {0x7f164fee7d70, [], SA_RESTORER, 0x7f164db34d40}, 8) = 0 rt_sigreturn() = -1 EINTR (Interrupted system call) select(7, [3 4], NULL, NULL, NULL
不是说我真的知道我在找什么,但是我不知道可能是什么问题。 有任何想法吗 ? 我也看到相当多的nrpe已经失效的进程,但是重启sshd会清除ssh和nrpe僵尸,出于某种原因。
不知道这是否可能是相关的,但是这些机器上的I / O非常慢,一个几百兆的简单dd有时需要几百秒才能完成。
编辑:如问,这是Ubuntu的可靠与openssh 6.6p1-2ubuntu2.7
所以在sshd_config中禁用UsePrivilegeSeparation似乎有诀窍。 不是那么做的一个巨大的粉丝,但它的作品..