martes, 23 de septiembre de 2008

Monitorizar procesos con kill

Si tienes el ID de un proceso pero no estas seguro que sea valido, puedes usar el mas indeseado de los
candidatos para probarlo, el comando kill. Si no vez ninguna referencia a este comando el pagina "man kill(1)"
entonces mira la pagina de info. La pagina man/info dice que la señal 0 es especial y que el código de salida de kill
informa si una señal puede ser enviada a un proceso especifico o procesos.

Entonces kill -0 no terminara el proceso y el estado de retorno puede ser usado para determinar si un proceso
esta corriendo. Por ejemplo:



$ echo $$ # muestra el id de tu proceso
12833
$ /bin/bash # crea nuevo proceso
$ echo $$ # muestra el id del nuevo proceso
12902
$ kill -0 12902
$ echo $? # salida
0
$ exit # regresa al shell anterior
$ kill -0 12902
bash: kill: (12902) - No hay proceso
$ echo $? # no existe, código de salida es 1
1


Varios de los procesos UNIX guardan sus IDs de procesos en el directorio /var/run cuando son iniciados.
Usando kill -0 para probar el pid es mas fácil que revisar la salida de ps. Por ejemplo para probar
si cron esta ejecutándose, has lo siguiente:



# kill -0 $(cat /var/run/cron.pid)
# echo $?
0


No hay comentarios: