LPIC

Guía extraoficial de estudio

Archivos por Etiqueta: monitorizar

Comando ps

Las opciones de ps

Este programa muestra el estado de los procesos. Admite muchas opciones útiles y sirve para monitorizar procesos. Para el que venga de windows, podríamos decir que es como el “Administrador de tareas” que aparece al presionar ctrl+alt+supr. Su sintaxis es muy sencilla:

ps [opciones]

Si no añadimos opciones, ps muestra los procesos del usuario con el que estamos logueado. No es necesario colocar espacios entre las opciones, ya que se pueden agrupar, por ejemplo, en lugar de poner ps -a -f, podríamos poner ps -af.

Como siempre, para conecer todas las opciones y posibilidades del programa deberemos consultar el manual (man ps). Además, se nos muestran varios ejemplos que podrian sernos de utilidad:

To print a process tree:
ps -ejH
ps axjf
To get info about threads:
ps -eLf
ps axms
To get security info:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM

Entre algunas de las características mas útiles tenemos:

Opción Resultado
–help Muestra la ayuda.
-A o -e Hacen que se muestren todos los procesos del sistema. Si le adjuntamos la opcion x, muestra todos los procesos que pertenecen al usuario que ejecuta el comando, además de incrementar la cantidad de información que se muestra de cada proceso.
-u usuario muestran los procesos que pertenecen al usuario en concreto.
-H , -f y –forest Muestra la jerarquía de procesos, útiles si intentamos averiguar los parentescos de los procesos.
-w Esta opción es utilizada para mostrar una salida mas ancha, ya que ps trunca su salida para que se adapte a su pantalla.. Con ps w>ps.txt, redirigimos la salida a un fichero, y lo abrimos que un editor de texto que admita lineas mas anchas.
-f, -l, j, l, u y v Se utilizan para ampliar la información proporcionada en la salida ps.

Podemos combinar estas opciones de muchas maneras para obtener los resultados deseados. Una de las combinaciones mas útililes para el “dia a dia” podria ser:

ps -aux

que nos muestra los procesos de todos los usuarios con infomación añadida:

 

Interpretar la salida de ps

Es importante saber interpretar los campos mostrados por la anterior imagen. Como podemos observar, la salida de ps comienza por un encabezado. Describamos esos campos:

Campo Descripción
USER Nombre de usuario que ejecuta el programa.
PID Número encargado de identificar el proceso. Es importante ya que lo necesitamos para modificar o destruir el proceso.
%CPU Porcentaje total de tiempo de CPU que utiliza el proceso cuando se utiliza ps.
%MEM Porcentaje de memoria utilizada por el proceso.
VSZ Tamaño total del proceso en la memoria virtual, en kilobytes.
RSS Cantidad de memoria utilizada por el proceso.
TTY Código que se utiliza para identifica el terminal. No todos los procesos tienen TTY.
STAT Muestra información acerca del estado del proceso (ver estado de un proceso Unix).
START Indica la hora de ejecución.
TIME Cantidad total de tiempo de CPU consumido.
COMAND Comando utilizado para iniciar el proceso.

 

Estado de un proceso Unix

  • Preparado (R).- Runnable. Está preparado para la ejecución.
  • Zombie (Z).- Todo proceso al finalizar avisa a su proceso padre, para que éste elimine su entrada de la tabla de procesos. En el caso de que el padre, por algún motivo, no reciba esta comunicación no lo elimina de la tabla de procesos. En este caso, el proceso hijo queda en estado zombie, no está consumiendo CPU, pero sí continua consumiendo recursos del sistema.
  • Ejecutando (O).- Sólo uno de los procesos preparados se está ejecutando (para sistemas monoprocesador).
  • Parado (T).- (traced) Un proceso parado. Pasará a estar preparado en cuanto vuelva a recibir la señal.
  • Suspendido (S).- Un proceso se encuentra suspendido si no entra en el reparto de CPU, ya que se encuentra esperando algún tipo de evento (por ejemplo, la recepción de una señal software o hardware). En cuanto dicho evento se produce, el proceso pasa a formar parte del conjunto de procesos preparados.