Envío de señales a los procesos: kill, killall y top

kill, killall

Estos dos comandos se usan para enviar señales a los procesos. El comando kill necesita el número de un proceso como argumento, mientras que el comando killall necesita el nombre de un comando.

Los dos comandos opcionalmente pueden recibir el número de una señal como argumento. Predeterminadamente, ambos envían la señal 15 (TERM) a el o los procesos relevantes. Por ejemplo, si quiere matar el proceso con PID 785, Usted ingresa el comando:

     $ kill 785
    

Si quiere enviarle la señal 19 (STOP), entonces ingresa:

     $ kill -19 785
    

Supongamos que quiere matar un proceso del cual Usted conoce el nombre del comando. En vez de encontrar el número de proceso usando ps, puede matar el proceso directamente:

     $ killall -9 netscape
    

Pase lo que pase, sólo matará a sus propios procesos (a menos que Usted sea root), por lo que no debe preocuparse acerca de los procesos “del vecino” que tienen el mismo nombre, ellos no serán afectados.

top

top es un programa todo en uno: simultáneamente cumple las funciones de ps y kill. Es un comando de modo consola, por lo que debe iniciarlo desde una terminal, como se muestra en Figura 6.1. Ejemplo de ejecución de top.

Figura 6.1. Ejemplo de ejecución de top

Ejemplo de ejecución de top

El programa se controla por completo con el teclado. Puede acceder a la ayuda presionando h, aunque esta está en inglés. Aquí tiene algunos de los comandos que puede usar.

  • k: este comando se usa para enviar una señal a un proceso. Luego, top le preguntará por el PID del proceso, seguido del número de la señal a enviar (predeterminadamente TERM — o 15);

  • M: este comando se usa para ordenar el listado de los procesos de acuerdo a la memoria que usan (campo %MEM);

  • P: este comando se usa para ordenar el listado de procesos de acuerdo al tiempo de CPU que consumen (campo %CPU; este es el método de ordenamiento predeterminado);

  • u: este comando se usa para mostrar los procesos de un usuario en particular, top le preguntará de cual. Debe ingresar el nombre del usuario, no su UID. Si no ingresa nombre alguno, se mostrarán todos los procesos;

  • i: este comando actúa como un interruptor; predeterminadamente se muestran todos los procesos, incluso los que están dormidos; este comando asegura que se muestran sólo los procesos que están en curso de ejecución (los procesos cuyo campo STAT indica R, running, ejecutando) y no los otros. Una nueva llamada a este comando lo lleva a la situación previa.