En este artículo:
Con el comando
man ps
podemos ver el manual completo sobre el comando ps; este comando muestra una captura de los procesos actuales.
Primero, las opciones básicas del comando ps
con:
ps --help simple
o
ps --ayuda simple
-A, -e todos los procesos
-a todos con tty, a excepción de los lideres de la sesión, a todos con tty, incluyendo los otros usuarios
-d, todos a excepción de los lideres de la sesión
-N, –anular negar la selección
r sólo los procesos que se ejecutan
T sólo los procesos en este terminal
x control de procesos sin ttys
Para mostrar otras opciones del comando ps tenemos estos parámetros:
ps --help simple|list|output|threads|misc|all
Si el idioma de tu distro Linux está en español, entonces será por ejemplo:
ps --ayuda simple
o
ps --ayuda lista
Y aquí la tabla en Ingles:
ps --help
********* simple selection *********
-A all processes
-N negate selection
-a all w/ tty except session leaders
-d all except session leaders
-e all processes
T all processes on this terminal
a all w/ tty, including other users
g OBSOLETE — DO NOT USE
r only running processes
x processes w/o controlling
********* selection by list *********
-C by command name
-G by real group ID (supports names)
-U by real user ID (supports names)
-g by session OR by effective group name
-p by process ID
-s processes in the sessions given
-t by tty
-u by effective user ID (supports names)
U processes for specified users
ttys t by tty
D Uninterruptible sleep – (En pausa ininterrumpible). Por ejemplo por alguna operación IO.
R Running – el proceso se encuentra ejecutándose
S interruptible sleep Pausa interrumpible (espera que se complete un evento )
T Stopped parado
X Dead – muerto. Esto nunca deberíamos verlo, ya que si el proceso está muerto, no aparecerá ..
Z Defunct -Proceso Zombie, terminado pero su proceso padre sigue vivo, y no ha detectado que el proceso ya murió.
Realmente existen más columnas en el listado de procesos.
SI ejecutamos ps aux, podremos ver más procesos del sistema y otros detalles:
Explicación del comando ps y los parámetros aux:
En la captura anterior podemos apreciar que se pueden ver otras columnas que previamente, con el comando ps -S, no veíamos:
Vamos a intentar comprender los diferentes estados.
Comenzamos listando los procesos existentes y sus estados mediante el comando:
ps -S
Ahora vamos a generar un retraso con el comando sleep:
sleep +30
y a continuación pulsamos Ctrl + Z, con lo que enviaremos la señal SIGSTOP.
Podemos ver claramente el Status T
El proceso está parado pero no terminado.
Podemos continuar este proceso parado.
Vamos a hacer lo mismo pero usando el comando seq, que imprime secuencias de números por pantalla
seq 30000
Imprimirá números, del 1 al 30000
Si en medio de la impresión pulsamos de nuevo Ctrl +Z, el proceso quedará parado,
y podremos volver a recuperarlo con el comando fg, y el comando seq seguirá imprimiendo la secuencia desde el número que se quedó.