mejor manera para desconectar usuarios remotos
Alvaro Herrera
alvherre en alvh.no-ip.org
Mar Ene 27 09:13:18 CLST 2009
Aldrin Martoq escribió:
> Yep, _mucho_ mejor! Solo te falto iterar todo el arbol hasta el final,
> no solo la primera capa:
En realidad creo que con la primera iteración basta, porque si le mandas
un SIGHUP al proceso sshd que está dos niveles por debajo del proceso en
sshd.pid, éste se encarga de propagar la señal hacia los hijos de más
abajo, tal como se supone que un shell debe hacer. En tu ejemplo de más
abajo:
> amartoq en videopodcast:~$ pstree -Ap $(cat /var/run/sshd.pid)
> sshd(4859)-+-sshd(11117)---sshd(11125)---bash(11128)
> `-sshd(12035)---sshd(12039)---bash(12042)
> amartoq en videopodcast:~$ ./h.sh
> hijos sshd (4859): 11128 11125 11117 12042 12039 12035
Si uno da SIGHUP a los procesos 11125 y 12039, automáticamente se
cierran también 11128 y 12042, y ellos propagan la señal también a sus
hijos los cuales también se cierran si corresponde.
> --------------------------h.sh-----------
> #!/bin/bash
> hijos() {
> for i in $(ps --ppid $1 -o pid --no-headers); do
> (hijos $i)
> echo -n "$i "
> done
> }
> sshdpid=$(cat /var/run/sshd.pid)
>
> echo "hijos sshd ($sshdpid):" $(hijos $sshdpid)
> -----------------------------------------
Top.
--
Alvaro Herrera http://www.PlanetPostgreSQL.org/
The easiest way to resolve [trivial code guidelines disputes] is to fire
one or both of the people involved. (Damian Conway)
Más información sobre la lista de distribución Linux