Listar procesos en Linux y mostrar información

El comando ps nos permite listar los procesos que se están ejecutando actualmente en nuestro sistema, si este comando no recibe ningún parámetro mostrará los procesos asociados al usuario con el que estemos trabajando en la sesión actual. Para poder ver los procesos de todos los usuarios debemos usar el parámetro -e. Por otro lado, para ver solamente los procesos de un usuario en particular se deberá utilizar el parámetro -u usuario.

Para obtener más información sobre el comando ps es posible revisar su manual utilizando su man page man ps.

Algunas de las opciones más comunes del comando ps son las siguientes:

  • -e: Muestra todos los procesos de todos los usuarios.
  • -f: Listado en formato completo.
  • -u usuario: Muestra los procesos de un usuario determinado.
  • -p pid: Muestra la información de un PID indicado. un PID es ID de un proceso.

Algunos comandos utilizados con ps son los siguientes:

  • ps -e: Muestra todos los procesos.
  • ps -ef: Muestra todos los procesos en formato completo.
  • ps -eH: Muestra un árbol de procesos.
  • ps -e --forest: Muestra un árbol de procesos.
  • ps -u usuario: Muestra los procesos en ejecución de usuario.

Mostrar procesos del usuario actual

$ ps
  PID TTY          TIME CMD
 1883 pts/0    00:00:00 bash
 1897 pts/0    00:00:00 ps

Mostrar información de un proceso en específico

ps -p 1883
  PID TTY          TIME CMD
 1883 pts/0    00:00:00 bash

Mostrar procesos en formato completo

$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
dimitri   1883  1882  0 16:06 pts/0    00:00:00 -bash
dimitri   1950  1883  0 16:08 pts/0    00:00:00 ps -f

Mostrar los primeros procesos que se ejecutaron (los primeros PID)

$ ps -e | head
  PID TTY          TIME CMD
    1 ?        00:00:02 systemd
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 kworker/0:0
    4 ?        00:00:00 kworker/0:0H
    5 ?        00:00:00 kworker/u4:0
    6 ?        00:00:00 mm_percpu_wq
    7 ?        00:00:00 ksoftirqd/0
    8 ?        00:00:00 rcu_sched
    9 ?        00:00:00 rcu_bh

Mostrar los primeros procesos que se ejecutaron en formato completo

$ ps -ef | head
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 16:05 ?        00:00:02 /sbin/init
root         2     0  0 16:05 ?        00:00:00 [kthreadd]
root         3     2  0 16:05 ?        00:00:00 [kworker/0:0]
root         4     2  0 16:05 ?        00:00:00 [kworker/0:0H]
root         5     2  0 16:05 ?        00:00:00 [kworker/u4:0]
root         6     2  0 16:05 ?        00:00:00 [mm_percpu_wq]
root         7     2  0 16:05 ?        00:00:00 [ksoftirqd/0]
root         8     2  0 16:05 ?        00:00:00 [rcu_sched]
root         9     2  0 16:05 ?        00:00:00 [rcu_bh]

Mostrar los procesos de un usuario en formato completo

$ ps -fu www-data
UID        PID  PPID  C STIME TTY          TIME CMD
www-data   974 20092  0 15:09 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  1104 20092  0 15:12 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  1121 20092  0 15:12 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2035 20092  0 15:34 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2037 20092  0 15:34 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2038 20092  0 15:34 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2138 20092  0 15:36 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2781 20092  0 15:49 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  5215  5036  0 Nov23 ?        00:00:16 nginx: worker process
www-data  5216  5036  0 Nov23 ?        00:00:16 nginx: worker process
www-data  5217  5036  0 Nov23 ?        00:00:16 nginx: worker process
www-data  5218  5036  0 Nov23 ?        00:00:00 nginx: worker process
www-data 16479 20092  0 Nov02 ?        00:03:18 /usr/sbin/apache2 -k start
www-data 29700 20092  0 13:48 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 32303 20092  0 14:46 ?        00:00:01 /usr/sbin/apache2 -k start

A continuación podrás ver otros comandos que también pueden ayudarte a ver los procesos que estén en ejecución, sin embargo, estos pueden no existir en todas las distribuciones de Linux por lo que es recomendable primero ver la documentación de cada uno de estos comandos.

  • pstree: Muestra los procesos en ejecución en formato de árbol.
  • top: Visor de procesos interactivo.
  • htop: Visor de procesos interactivo. Este comando es menos común que top y puede no estar disponible en todos los sistemas.