Está en la página 1de 4

Envo de seales a los procesos: kill, killall y top

kill, killall
Estos dos comandos se usan para enviar seales a los procesos. El comando kill necesita el nmero de un proceso como argumento, mientras que el comando killall necesita el nombre de un comando. Los dos comandos opcionalmente pueden recibir el nmero de una seal como argumento. Predeterminadamente, ambos envan la seal 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 seal 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 nmero de proceso usando ps, puede matar el proceso directamente:
$ killall -9 mozilla

Pase lo que pase, slo 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 sern afectados.

top
top es un programa todo en uno: simultneamente 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 ejecucin de top. Figura 6.1. Ejemplo de ejecucin de top

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

k: este comando se usa para enviar una seal a un proceso. Luego, top le preguntar por el PID del proceso, seguido del nmero de la seal 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 mtodo 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 mostrarn todos los procesos; i: este comando acta como un interruptor; predeterminadamente se muestran todos los procesos, incluso los que estn dormidos; este comando asegura que se muestran slo los procesos que estn en curso de ejecucin (los procesos cuyo campo STAT indica R, running, ejecutando) y no los otros. Una nueva llamada a este comando lo lleva a la situacin previa.

Ajustando la prioridad de los procesos: nice, renice


Cada proceso en el sistema est corriendo con prioridades definidas (llamadas tambin nice value). Este valor puede variar desde -20 a +20. La mxima prioridad para los

procesos es -20. Si no est definido, cada proceso correr con prioridad 0 de manera predeterminada (la prioridad base para la administracin de procesos) Los procesos con prioridad mxima (cualquier valor negativo hasta -20) usan ms recursos del sistema que otros. Los procesos con prioridad mnima (+20) funcionarn cuando otras tareas no usen el sistema. Los usuarios que no sean el superusuario slo pueden bajar la prioridad de los procesos que poseen en el rango de 0 a 20. El superusuario (root) puede ajustar la prioridad de los procesos a cualquier valor.

renice
Si uno o ms procesos usan muchos recursos del sistema, Usted puede cambiar las prioridades de los mismos en vez de terminarlos. Para tales tareas se puede usar el comando renice. La sintaxis del mismo es como sigue:
renice prioridad [[-p] pid ...] [[-g] pgrp ...] [[-u] usuario ...]

donde prioridad es el valor de la prioridad, pid (use la opcin -p para mltiples procesos) es el ID del proceso, pgrp (precedido por la opcin -g) si son varios) es el ID de grupo del proceso, y usuario (-u para ms de uno) es el nombre de usuario del dueo del proceso. Supongamos que tiene que corriendo un procesos con PID 785, y el mismo realiza una operacin cientfica compleja, y mientras el proceso est trabajando Usted desea jugar un juego. Entonces, teclea:
$ renice +15 785

En este caso, su proceso probablemente trabajar un poquito ms. Sin embargo, no evitar que otros procesos utilicen ms tiempo de CPU. Si Usted es el administrador del sistema y nota que algn usuario est corriendo muchos procesos que utilizan muchos recursos del sistema, puede cambiar la prioridad de los procesos de dicho usuario con un nico comando:
# renice +20 -u peter

Luego de esto, todos los procesos de peter tendrn la prioridad menor y no obstruirn procesos de otros usuarios.

nice
Ahora que sabe como puede cambiar la prioridad de los procesos, puede desear correr un comando con una prioridad definida. Para esto, utilice el comando nice. este caso debe especificar su comando como una opcin para nice. De manera predeterminada nice ajusta una prioridad de 10. El rango va desde -20 (prioridad mayor) a 19 (menor) La opcin -n se usa para ajustar el valor de la prioridad.

Por ejemplo, Usted desea crear una imagen ISO de un CD-ROM de instalacin de Mandrakelinux:
$ dd if=/dev/cdrom of=~/mdk1.iso

En algunos sistemas con un CD-ROM IDE comn, el proceso de la copia de un volumen grande de informacin puede utilizar muchos recursos del sistema. Para evitar que la copia bloquee a todos los dems procesos, se puede comenzar el proceso de copia con una prioridad disminuida usando este comando:
$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.iso

y continuar con lo que estaba haciendo. Para cambiar la prioridad de un proceso tambin puede usar el utilitario top descripto antes. Use la tecla R dentro de la interfaz de top para cambiar la prioridad del proceso que pretenda.