viernes, 16 de octubre de 2015

Viendo los procesos

El comando más comúnmente usado para ver procesos (hay varios) es ps. El programa ps tiene un montón de opciones, pero en su forma más simple se usa así:

[me@linuxbox ~]$ ps
  PID TTY       TIME CMD
 5198 pts/1 00:00:00 bash
10129 pts/1 00:00:00 ps

El resultado de este ejemplo es un lista de dos procesos, el proceso 5198 y el proceso 10129, que son bash y ps respectivamente. Como podemos ver, por defecto, ps no nos muestra mucho, sólo los procesos asociados a la sesión de terminal actual. Para ver más, necesitamos añadir algunas opciones, pero antes de hacerlo, veamos los otros campos producidos por ps. TTY es la abreviatura de “Teletype”, y se refiere al terminal que controla el proceso. Unix muestra su edad aquí. El campo TIME es la cantidad de tiempo de CPU consumido por el proceso. Como podemos ver, ninguno de los procesos hace al ordenador trabajar mucho.

Si añadimos una opción, podemos tener una imagen más amplia de qué está haciendo el sistema:

[me@linuxbox ~]$ ps x
PID   TTY STAT TIME COMMAND
2799  ?   Ssl  0:00 /usr/libexec/bonobo-activation-server –ac
2820  ?   Sl   0:01 /usr/libexec/evolution-data-server-1.10 --
15647 ?   Ss   0:00 /bin/sh /usr/bin/startkde
15751 ?   Ss   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --
15754 ?   S    0:00 /usr/bin/dbus-launch --exit-with-session
15755 ?   Ss   0:01 /bin/dbus-daemon --fork --print-pid 4 –pr
15774 ?   Ss   0:02 /usr/bin/gpg-agent -s –daemon
15793 ?   S    0:00 start_kdeinit --new-startup +kcminit_start
15794 ?   Ss   0:00 kdeinit Running...
15797 ?   S    0:00 dcopserver –nosid



y muchos más...

Añadiendo la opción “x” (fíjate que no lleva un guión delante) le decimos a ps que muestre todos nuestros procesos independientemente de qué terminal (si hay alguno) los controla. La presencia de un “?” en la columna TTY indica que ningún terminal controla. Usando esta opción, vemos una lista de cada proceso que tenemos.

Como el sistema está ejecutando muchos procesos, ps produce una lista larga. A menudo ayuda pasar la salida de ps por una tubería a less para verlo más fácilmente. Algunas combinaciones de opciones también producen largas líneas de salida, así que maximizar la ventana del emulador de terminal también puede ser una buena idea.

Una nueva columna llamada STAT se ha añadido a la salida. STAT es una abreviatura de “state” y revela el estado actual del proceso:

Tabla 10-1: Estado de los procesos
Estado Significado
R Funcionando (running). Significa que el proceso está en ejecución o preparado para ser ejecutado.
S Durmiendo (Sleeping). El proceso no está ejecutándose; en su lugar, está esperando a un evento, como una pulsación de teclado o un paquete de red.
D Sueño ininterrumpible. El proceso está esperando una E/S como una unidad de disco.
T Parado. Se le ha ordenado al proceso que pare. Veremos más sobre esto más tarde.
Z Proceso extinto o “zombie”. Es un proceso hijo que ha terminado, pero no ha sido limpiado por su padre.
< Un proceso de alta prioridad. Es posible dar más importancia a un proceso, dándole más tiempo en la CPU. Esta propiedad de un proceso se llama niceness (amabilidad). Un proceso con alta prioridad se dice que es menos "amable" porque está utilizando más tiempo de la CPU, lo que deja menos tiempo para todos los demás.
N Un proceso de baja prioridad. Un proceso con baja prioridad (un proceso “amable”) sólo ocupará tiempo de procesador después de que otros procesos con mayor prioridad hayan sido servidos.

El estado del proceso puede ir seguido de otros caracteres. Esto indica varias características exóticas de los procesos. Mira la man page de ps para más detalles.

Otro popular grupo de opciones es “aux” (sin guión delante). Nos da incluso más información:

[me@linuxbox ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1   0.0  0.0  2136 644  ?   Ss Mar05 0:31 init
root 2   0.0  0.0     0   0  ?   S< Mar05 0:00 [kt]
root 3   0.0  0.0     0   0  ?   S< Mar05 0:00 [mi]
root 4   0.0  0.0     0   0  ?   S< Mar05 0:00 [ks]
root 5   0.0  0.0     0   0  ?   S< Mar05 0:06 [wa]
root 6   0.0  0.0     0   0  ?   S< Mar05 0:36 [ev]
root 7   0.0  0.0     0   0  ?   S< Mar05 0:00 [kh]



y muchos más...

Esta configuración de opciones muestras los procesos pertenecientes a cada usuario. Usar las opciones sin el guión al principio invoca el comando con comportamiento “estilo BSD”. La versión Linux de ps puede emular el comportamiento del programa ps que se encuentra en varias implementaciones de Unix. Con estas opciones, tendemos estas columnas adicionales:

Tabla 10-2: Encabezados de Columnas en el Estilo BSD de ps
Encabezado Significado
USER ID de usuario. Es el propietario del proceso.
%CPU Uso de CPU en porcentaje.
%MEM Uso de memoria en porcentaje.
VSZ Tamaño de la memoria virtual.
RSS Tamaño de configuración residente (Resident Set Size). La cantidad de memoria física (RAM) que el proceso usa en kilobytes.
START Hora en que comenzó el proceso. Para valores de más de 24 horas, se usa la fecha.

No hay comentarios:

Publicar un comentario