Desde el punto de vista del sistema, las aplicaciones corren en uno o varios procesos, consumiendo recursos del sistema, tales como tiempo del procesador y memoria. Presentamos algunos comandos para supervisar y administrar esos procesos y, consecuentemente, las aplicaciones a los que pertenecen.
El comando ps muestra una lista de procesos que corren actualmente en el sistema de acuerdo con los criterios que Usted establezca.
Al correr ps sin argumentos, éste mostrará sólo los procesos iniciados por Usted y ligados a la terminal que está utilizando:
$ ps PID TTY TIME CMD 18614 pts/3 00:00:00 bash 20173 pts/3 00:00:00 ps
Los procesos se controlan por medio de señales. Los comandos kill y killall se utilizan para enviar señales a los procesos. El comando kill necesita un número de proceso como argumento, mientras que killall necesita un nombre de proceso.
kill [-SEÑAL] <numero_de_proceso>
killall [-SEÑAL] <nombre_de_proceso>
Las señales se pueden especificar por nombre o por número. Ejecute kill -l para visualizar una lista de las señales disponibles. Las señales más utilizadas son:
TERM
o 15
: es la
señal predeterminada que se envía si se omite el nombre o número de
la señal. Finaliza el proceso elegantemente.
STOP
o 19
: esta señal
se utiliza para suspender un proceso por unos instantes. Envíe la
señal CONT
o 18
para
continuar un proceso suspendido.
KILL
o 9
: esta señal
se utiliza para forzar la finalización del proceso. Generalmente
se la utiliza para finalizar un proceso que no responde (o que
está “congelado”). Finaliza el proceso en forma
abrupta.
kill 785: solicita al proceso
identificado por el número 785
finalizar la
ejecución dándole la oportunidad de llevar a cabo cualquier
operación de limpieza que necesite;
kill -KILL 785: fuerza la finalización del proceso identificado
por el número 785
sin darle al proceso la
oportunidad de llevar a cabo cualquier operación de
limpieza. El proceso termina de inmediato;
killall -TERM make: solicita a todos los
procesos denominados make
lanzados por ese
usuario, que finalicen la ejecución.
Pase lo que
pase, solamente podrá controlar sus propios procesos (a menos que
esté conectado como root
), por lo cual no necesita
preocuparse sobre los procesos de los otros usuarios ya que los
mismos no se verán afectados.
top es un programa que realiza simultáneamente las funciones de ps y kill, y también se utiliza para supervisar los procesos en tiempo real brindando información sobre el uso de CPU y utilización de memoria, tiempo de ejecución, etc., como se muestra en Figura 17.1, “Supervisión de procesos con top”.
El utilitario top se controla por completo con el teclado. Los comandos son sensibles a mayúsculas y minúsculas. Puede obtener ayuda si presiona h. Los comandos más útiles son los siguientes:
k: envía una señal a un
proceso. Se le solicitará el PID del proceso seguido del
número o nombre de la señal a ser enviada
(TERM
o 15
, de forma
predeterminada);
M: ordena los procesos por la
cantidad de memoria que ocupan (campo
%MEM
);
P: ordena los procesos por el
tiempo de CPU que ocupan (campo %CPU
): este
es el método de ordenamiento predeterminado;
u: muestra los procesos de un usuario dado. Se le pide que introduzca el nombre del usuario, no su UID. Si no ingresa un nombre, se mostrarán todos los procesos;
i: todos los
procesos, incluso los “dormidos”, se muestran de
forma predeterminada. Este comando asegura que sólo se muestran
los procesos que corren actualmente (procesos cuyos campo
STAT
muestra R
,
Running) y no los otros. Al
utilizar este comando nuevamente se vuelven a mostrar todos los
procesos.