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 <numero_de_proceso>
killall <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 19.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.