Destruir procesos - kill y killall

Versión para impresiónVersión PDF

Antes hemos visto nice y renice que nos permiten reducir la prioridad de uno o varios procesos, pero en ocasiones lo que se nos presenta es un proceso que no debería estar ejecutándose, o un programa deje de responder totalmente provocando la aparición de procesos denominados zombie (muerto viviente).

Con estos procesos lo que normalmente querremos hacer es destruirlos para ello podemos utilizar kill

kill

A kill hay que pasarle una señal de finalización, con la que le diremos de que manera queremos que destruya el proceso, podemos pasar tanto el numero como la constante que lo representa, las señales mas habituales son :

Nº. señal Constante Descripción
1 SIGHUP Finaliza los programas interactivos, y hace que muchos demonios vuelvan a leer su fichero de configuración
9 SIGKILL Finaliza inmediatamente, sin dejar realizar las tareas de finalización
15 SIGTERM Finaliza el proceso permitiendo realizar las tareas de finalización

Consideraciones

  • Debemos tener en cuenta que algunas consolas tienen su propio comando kill por lo que seria algo a tener en cuenta
  • Para una lista completa así como su sintaxis utiliza man kill de esta forma obtendríamos la ayuda para el kill de la consola que estemos utilizando
  • Para obtener la lista del comando externo y su sintaxis man /bin/kill
  • su sintaxis es kill -s señal pid
  • El valor por defecto es SIGTERM (15)
  • Solo podremos destruir aquellos procesos sobre los que tengamos permisos, esto implica que root debe ser muy cuidadoso, como siempre.
  • El kernel pasa una señal SIGHUP a aquellos procesos que se iniciaron en una sesión al terminar esta, si lo necesitamos, podemos evitar que el proceso termine cuando cerremos sesión, o en situaciones similares, lanzando el programa con el comando nohup programa opciones

killall

Nos permite eliminar un proceso en base a su nombre en lugar de su pid, por lo que podemos eliminar todas las instancias de un proceso. Con el parámetro -i conseguiremos que se nos pregunte de forma interactiva si queremos eliminar una instancia concreta del proceso o si por el contrario deseamos que continué su ejecución.

En algunos sistemas destruye todos los procesos del usuario que lo ejecuta.

Si lo ejecuta root debe tener cuidado ya que podría eliminar todos las instancias de un proceso aunque no sean suyos, aunque en ocasiones sea exactamente lo que desea.

Es muy recomendable estudiar bien la documentación de estos comandos en cada sistema en particular para familiarizarse y comprender completamente que hacen exactamente en nuestro sistema

Añadir nuevo comentario

(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • No se permiten etiquetas HTML.
  • Saltos automáticos de líneas y de párrafos.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
CAPTCHA de imagen
Introduzca los caracteres mostrados en la imagen.