Killproc

Salvador Ortiz Garcia sog en msg.com.mx
Jue Mayo 3 12:36:56 CST 2001


On Thu, 3 May 2001, César Augusto Mendoza Moreno wrote:

> Saludos.
> 
>    Es la primera vez que escribo a una lista de ayuda,
> así que les pido paciencia si no lo hago de la manera
> más correcta.
> 
>    Tengo un servidor RedHat 6.0, funcionando como
> servidor web y de correo, entre otros. No acostumbro
> 'reiniciarlo', pero de vez en cuando lo hago. Me
> inquieta que antes no tenía problemas para reiniciar,
> pero de un tiempo acá, en la secuencia de 'halt' al
> cerrar casi todos los servicios, marca '[FAILED] no
> such pid'. De hecho, al reiniciar samba o apache, me
> marca lo mismo. Al leer los scripts para el manejo de
> los demonios vi que en común todos los que marcan
> [FAILED] usan una llamada a killproc. 
> 
>     Un amigo que le sabe más a Linux, revisó y me dice
> que está raro, pues buscó los famosos 'pids' y si
> existen, si se están creando, pero killproc no los
> encuentra para matarlos. Bueno, eso es lo que parece.
> 
>     Díganme que otra información sería útil para dar
> con el problema, o si es suficiente, ¿que hago para
> arreglarlo?

El problema que reportas es mas o menos común pero suele ser inocuo:

Asomate a /etc/rc.d/init.d/functions, en la funcion killproc, la logica es
primero enviar al proceso una señal TERM para darle oportunidad de
terminar ordenadamente (lo que puede tardar un tiempo indefindo), esperar
un poco y si continúa vivo enviarle una señal KILL, la cosa es que entre
que verifico si continúa vivo y lo mato a la mala, el proceso en custión
puede terminar normalmente, de forma que el KILL ya no tiene proceso que
matar.

RedHat ha venido refinando el script, pues en un 5.2, por ejemplo, decía:

              ...
              if ps h $pid >/dev/null 2>&1 ; then
                   sleep 3
                   kill -KILL $pid
              fi
              ,,,

Lo que abre una ventanota de tiempo (3 segs) en que lo descrito pasa con
frecuencia, en 6.2 dice:

              ...
              if ps h $pid >/dev/null 2>&1 ; then
                   sleep 3
                   if ps h $pid >/dev/null 2>&1 ; then
                      kill -KILL $pid
                   fi
              fi
              ...

Que _casi_ cierra esa ventana, pero aun se puede dar el caso.
Ya no tengo a la mano ningún 6.0.

Saludos

Salvador Ortiz


---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda