Listar los procesos que se ejecutan en linux

Listar los procesos que se ejecutan en linux actualmente.

La instancia de una herramienta (o aplicación) en ejecución se conoce como proceso. Cada vez que lanzamos un comando de shell, inicia una herramienta definida y se crea un proceso exclusivo para él. En linux, cada proceso tiene su ID también conocido como PID, que a su vez está asociado a un usuario y grupo específico.

Linux es un sistema operativo multitarea, por tanto puede ejecutar varias aplicaciones y tareas. Cada proceso cree que es el único del sistema, para solucionar este problema tenemos aplicaciones en el kernel que se encargan de poner orden.

Todas las tareas del sistema comparten los mismos recursos, tanto CPU como memoria. Para ser un buen sysadmin linux, debes estar familiarizado con una gama de comandos que nos permiten enumerar, identificar o eliminar un proceso. Nos adentramos un poco en este mundo, aprendiendo a listar o enumerar los procesos de nuestro sistema.

Procesos que se ejecutan en linux

Procesos que se ejecutan en linux

 

Listar los procesos que se ejecutan en linux

Listar los procesos en ejecución

Vemos diversas opciones de uso para listar todos los procesos, con el comando ps.

ps aux

Este comando es el que ofrece más detalles.

ps aux

Ejemplo…

sergio@sololinux:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2 160112  9468 ?        Ss   11:07   0:13 /sbin/init
root         2  0.0  0.0      0     0 ?        S    11:07   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   11:07   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   11:07   0:00 [rcu_par_gp]
root         6  0.0  0.0      0     0 ?        I<   11:07   0:01 [kworker/0:0H-k
root         9  0.0  0.0      0     0 ?        I<   11:07   0:00 [mm_percpu_wq]
root        10  0.0  0.0      0     0 ?        S    11:07   0:01 [ksoftirqd/0]
ps -ef

Enumera todos los proceso que se ejecutan actualmente, con una sintaxis estandart.

ps -ef

Salida…

sergio@sololinux:~$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 11:07 ?        00:00:13 /sbin/init
root         2     0  0 11:07 ?        00:00:00 [kthreadd]
root         3     2  0 11:07 ?        00:00:00 [rcu_gp]
root         4     2  0 11:07 ?        00:00:00 [rcu_par_gp]
root         6     2  0 11:07 ?        00:00:01 [kworker/0:0H-kb]
root         9     2  0 11:07 ?        00:00:00 [mm_percpu_wq]
root        10     2  0 11:07 ?        00:00:01 [ksoftirqd/0]
ps -ely

Otro formato con algún detalle más que el comando anterior.

ps -ely

Se imprime lo siguiente…

sergio@sololinux:~$ ps -ely
S   UID   PID  PPID  C PRI  NI   RSS    SZ WCHAN  TTY          TIME CMD
S     0     1     0  0  80   0  9468 40028 -      ?        00:00:13 systemd
S     0     2     0  0  80   0     0     0 -      ?        00:00:00 kthreadd
I     0     3     2  0  60 -20     0     0 -      ?        00:00:00 rcu_gp
I     0     4     2  0  60 -20     0     0 -      ?        00:00:00 rcu_par_gp
I     0     6     2  0  60 -20     0     0 -      ?        00:00:01 kworker/0:0H
I     0     9     2  0  60 -20     0     0 -      ?        00:00:00 mm_percpu_wq
S     0    10     2  0  80   0     0     0 -      ?        00:00:01 ksoftirqd/0

 

Listar procesos por usuario

Para listar los procesos de cada usuario, usamos la siguiente sintaxis.

ps -U USER -u USER u

Vemos un ejemplo con el usuario Sergio.

ps -U sergio -u sergio u

Verás algo similar a…

sergio@sololinux:~$ ps -U sergio -u sergio u
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
sergio    1015  0.0  0.2  76944  8156 ?        Ss   11:07   0:00 /lib/systemd/sy
sergio    1016  0.0  0.0 132572  2996 ?        S    11:07   0:00 (sd-pam)
sergio    1029  0.0  0.2 285632  7984 ?        Sl   11:07   0:00 /usr/bin/gnome-
sergio    1032  0.0  0.5 428172 21956 ?        Ssl  11:07   0:00 xfce4-session
sergio    1094  0.0  0.1  50824  5280 ?        Ss   11:07   0:14 /usr/bin/dbus-d
sergio    1204  0.0  0.0  11312   324 ?        Ss   11:07   0:00 /usr/bin/ssh-ag
sergio    1259  0.0  0.1 349376  6388 ?        Ssl  11:07   0:00 /usr/lib/at-spi
sergio    1264  0.0  0.1  50056  4544 ?        S    11:07   0:02 /usr/bin/dbus-d
sergio    1267  0.0  0.1 220660  7016 ?        Sl   11:07   0:05 /usr/lib/at-spi

 

Listar los procesos en formato árbol

ps axjf

Es la manera más cómoda de entender los procesos padre e hijo.

ps axjf

# o

ps -ef --forest

Observa…

 784   794   794   794 tty7       794 Ssl+     0  11:44  \_ /usr/lib/xorg/Xorg 
 784  1003   784   784 ?           -1 Sl       0   0:00  \_ lightdm --session-c
1003  1032  1032  1032 ?           -1 Ssl   1000   0:00      \_ xfce4-session
1032  1204  1204  1204 ?           -1 Ss    1000   0:00          \_ /usr/bin/ss
1032  1282  1032  1032 ?           -1 Sl    1000   0:21          \_ xfwm4
1032  1300  1032  1032 ?           -1 Sl    1000   1:04          \_ xfce4-panel
1300  1314  1032  1032 ?           -1 Sl    1000   0:17          |   \_ /usr/li
1314  4423  1032  1032 ?           -1 Sl    1000   0:01          |   |   \_ lea
1314  6596  1032  1032 ?           -1 Sl    1000   0:00          |   |   \_ /us
6596  6613  1032  1032 ?           -1 Sl    1000   0:09          |   |       \_
1300  1319  1032  1032 ?           -1 Sl    1000   0:00          |   \_ /usr/li
1300  1320  1032  1032 ?           -1 Sl    1000   0:02          |   \_ /usr/li
1300  1321  1032  1032 ?           -1 Sl    1000   0:06          |   \_ /usr/li
1300  1322  1032  1032 ?           -1 Sl    1000   1:29          |   \_ /usr/li
1300  1526  1032  1032 ?           -1 SLl   1000  20:06          |   \_ /usr/li
1526  1542  1032  1032 ?           -1 S     1000   0:00          |   |   \_ /us
1542  1563  1032  1032 ?           -1 Sl    1000  25:26          |   |   |   \_
1526  1543  1032  1032 ?           -1 S     1000   0:00          |   |   \_ /us
1543  1545  1032  1032 ?           -1 S     1000   0:00          |   |   |   \_
pstree -p

Quizás no es tan completo como el comando anterior, pero visualmente aún es más comprensible.

pstree -p
sergio@sololinux:~$ pstree -p
systemd(1)─┬─ModemManager(616)─┬─{ModemManager}(627)
           │                   └─{ModemManager}(634)
           ├─NetworkManager(635)─┬─dhclient(1073)
           │                     ├─{NetworkManager}(659)
           │                     └─{NetworkManager}(664)
           ├─accounts-daemon(596)─┬─{accounts-daemon}(598)
           │                      └─{accounts-daemon}(633)
           ├─acpid(662)
           ├─agetty(795)
           ├─avahi-daemon(601)───avahi-daemon(604)
           ├─bluetoothd(874)
           ├─cron(608)
           ├─cups-browsed(9218)─┬─{cups-browsed}(9227)
           │                    └─{cups-browsed}(9228)
           ├─cupsd(9217)
           ├─dbus-daemon(620)

El comando pstree, también admite listar los procesos de un usuario.

pstree -p sergio
sergio@sololinux:~$ pstree -p sergio
gimp-2.8(5896)─┬─script-fu(5908)─┬─{script-fu}(5912)
               │                 └─{script-fu}(5913)
               ├─{gimp-2.8}(5899)
               ├─{gimp-2.8}(5900)
               ├─{gimp-2.8}(5902)
               └─{gimp-2.8}(5903)

gnome-keyring-d(1029)─┬─{gnome-keyring-d}(1030)
                      ├─{gnome-keyring-d}(1031)
                      └─{gnome-keyring-d}(1584)

xfce4-session(1032)─┬─Thunar(1308)─┬─{Thunar}(1309)
                    │              └─{Thunar}(1310)
                    ├─applet.py(1364)───{applet.py}(1433)
                    ├─light-locker(1349)─┬─{light-locker}(1367)
                    │                    ├─{light-locker}(1371)
                    │                    └─{light-locker}(1374)

Listar los procesos que se ejecutan en linux

Número de subprocesos de cada proceso

ps -eLf
ps -eLf

Los podemos identificar en la columna marcada como «LWP».

sergio    5373  1015  5390  0    5 12:53 ?        00:00:00 /usr/libexec/xdg-desk
sergio    5373  1015 11793  0    5 16:50 ?        00:00:00 /usr/libexec/xdg-desk
sergio    5377  1015  5377  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5377  1015  5378  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5377  1015  5379  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5377  1015  5387  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5377  1015  5388  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5377  1015  5389  0    6 12:53 ?        00:00:00 /usr/libexec/xdg-docu
sergio    5380  1015  5380  0    3 12:53 ?        00:00:00 /usr/libexec/xdg-perm
sergio    5380  1015  5381  0    3 12:53 ?        00:00:00 /usr/libexec/xdg-perm

 

Mostrar el PID y el comando

ps -eo pid,comm

Si solo necesitas averiguar el PID y el comando ejecutado, esto es para ti.

ps -eo pid,comm

Ejemplo de salida…

sergio@sololinux:~$ ps -eo pid,comm
  PID COMMAND
    1 systemd
    2 kthreadd
    3 rcu_gp
    4 rcu_par_gp
    6 kworker/0:0H-kb
    9 mm_percpu_wq
   10 ksoftirqd/0
   11 rcu_sched

 

Detalles de consumo de cada comando

ps -eo pid,%mem,%cpu,rss,rsz,vsz,comm

Interesante comando para identificar consumos por proceso, tanto de la cpu como de la memoria. Listar los procesos que se ejecutan en linux.

ps -eo pid,%mem,%cpu,rss,rsz,vsz,comm

Ejemplo…

sergio@sololinux:~$ ps -eo pid,%mem,%cpu,rss,rsz,vsz,comm 
  PID %MEM %CPU   RSS   RSZ    VSZ COMMAND
    1  0.2  0.0  9468  9468 160112 systemd
    2  0.0  0.0     0     0      0 kthreadd
    3  0.0  0.0     0     0      0 rcu_gp
.............
 5391  0.4  0.0 16524 16524 536936 xdg-desktop-por
 5896  3.2  0.5 129304 129304 1113204 gimp-2.10
 5908  0.4  0.0 16764 16764 306652 script-fu
 6573  6.3 11.1 251404 251404 5666120 chromium-browse
 6596  0.1  0.0  6364  6364 215004 oosplash
 6613  5.6  0.0 222460 222460 1148452 soffice.bin
 7793  0.0  0.1     0     0      0 kworker/0:4-eve
 9217  0.2  0.0  8612  8612 105136 cupsd
 9218  0.2  0.0 11024 11024 303532 cups-browsed

Hasta aquí el articulo sobre «Listar los procesos que se ejecutan en linux», en el proximo articulo veremos como identificar el PID de un proceso y, el proceso de un PID.

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Listar los procesos que se ejecutan en linux.

Chat de SoloLinux en Telegram

 

2 Comentarios

  1. Guillermo Carlos
    10/11/2020
    • Sergio G.B.
      10/11/2020

Agregar comentario