Eliminar procesos “zombies” de SSH

Hay veces que con SSH se cierran mal las conexiones, y se quedan procesos abiertos (zombies) en la máquina que tiene el demonio de SSH.

Ejemplo:

#ps -ef
calidad   7762  7761  0 Nov03 ?        00:00:00 [scp] <defunct>
root      1898  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   1913  1898  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   1914  1913  0 Nov03 ?        00:00:00 [scp] <defunct>
root      4664  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   4669  4664  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   4670  4669  0 Nov03 ?        00:00:00 [scp] <defunct>
root      6344  2384  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   6349  6344  0 Nov03 ?        00:00:00 sshd -i -f /etc/ssh/sshd_config
calidad   6350  6349  0 Nov03 ?        00:00:00 [scp] <defunct>

Para eliminar estas sesiones que se quedan sin cerrar correctamente, se puede enviar la señal de reinicio al proceso de SSH, por cada una de las sesiones mal cerradas:

pstree -cpal | egrep [s]shd | perl -lne '($i)=(/(d+)/); `kill -1 $i`'

Con esto conseguimos que se reinicien todas las conexiones de SSH que tiene la máquina.

(Recuerda que hay que tener Perl instalado para poder ejecutar el comando anterior).

También te puede interesar

3 comentarios

Dejar un comentario