Назад | Перейти на главную страницу

Осиротевшие процессы SSH

На некоторых виртуальных машинах кажется, что каждый сеанс ssh при выходе заканчивается как потерянный процесс. Я могу воспроизвести это, просто войдя в систему через ssh на машине, затем выполнив exit или ^ D, а затем используя ps -elf | grep defunct У меня есть еще один процесс ssh. Наш мониторинг часто использует ssh, так что к утру это сотни и сотни осиротевших зомби, и это примерно на 20 виртуальных машинах.

Вот пример вывода ps:

5 Z user  3197     1  0  80   0 -     0 exit   10:00 ?        00:00:00 [sshd] <defunct>

Я попытался сделать часть родительского (sshd), чтобы увидеть, вот результат, когда я выхожу из сеанса 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-зомби.

Не знаю, может ли это быть актуально, но на этих машинах есть очень-очень медленные операции ввода-вывода, простое dd в несколько сотен мегабайт иногда занимает сотни секунд.

РЕДАКТИРОВАТЬ: как и просили, Ubuntu доверяет openssh 6.6p1-2ubuntu2.7

Таким образом, отключение UsePrivilegeSeparation в sshd_config, похоже, помогает. Не очень-то фанат этого, но это работает ..