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

3.1. 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 por el nombre del mismo. Si el proceso se denomina “mozilla” puede ejecutar el comando:

$ killall -9 mozilla

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 de los demás usuarios si está en un sistema multiusuario ya que los mismos no serán afectados.

3.2. Mezclando ps y kill: top

top es un programa que cumple simultáneamente las funciones de ps y kill, y también se usa para monitorear a los procesos en tiempo real brindando información acerca del uso de la CPU y la memoria, el tiempo de ejecución, etcétera, 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 utilitario top 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 o nombre de la señal a enviar (TERM o 15 de manera predeterminada);

  • 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.

  • r: este comando se usa para cambiar la prioridad del proceso seleccionado.