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
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.
Muy interesante todo, me gusto muchísimo.-
Muchas gracias Guillermo.