GNU/Linux >> Tutoriales Linux >  >> Linux

Supervise su sistema Linux en su terminal con procps-ng

Un proceso, en la terminología POSIX, es un evento continuo que está siendo administrado por el kernel de un sistema operativo. Se genera un proceso cuando inicia una aplicación, aunque hay muchos otros procesos que se ejecutan en segundo plano en su computadora, incluidos programas para mantener la hora exacta de su sistema, monitorear nuevos sistemas de archivos, indexar archivos, etc.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

La mayoría de los sistemas operativos tienen algún tipo de monitor de actividad del sistema para que pueda saber qué procesos se están ejecutando en un momento dado. Linux tiene algunos para elegir, incluidos GNOME System Monitor y KSysGuard. Ambas son aplicaciones útiles en el escritorio, pero Linux también brinda la capacidad de monitorear su sistema en su terminal. Independientemente de lo que elija, es una tarea común para aquellos que toman un papel activo en la administración de su computadora examinar un proceso específico.

En este artículo, demuestro cómo encontrar el ID de proceso (PID) de un programa. Las herramientas más comunes para esto son proporcionadas por el paquete procps-ng, incluido el ps y pstree , pidof y pgrep comandos.

Encuentra el PID de un programa en ejecución

A veces desea obtener el ID de proceso (PID) de una aplicación específica que sabe que está ejecutando. El pidof y pgrep los comandos encuentran procesos por nombre de comando.

El pidof comando devuelve los PID de un comando, buscando el comando exacto por nombre:

$ pidof bash 
1776 5736

El pgrep El comando permite expresiones regulares (regex):

$ pgrep .sh
1605
1679
1688
1776
2333
5736
$ pgrep bash
5736

Buscar un PID por archivo

Puede encontrar el PID del proceso usando un archivo específico con el fuser comando.

$ fuser --user ~/example.txt                    
/home/tux/example.txt:  3234(tux)

Obtener un nombre de proceso por PID

Si tiene el número de PID de un proceso pero no del comando que lo generó, puede hacer una "búsqueda inversa" con ps :

$ ps 3234
 PID TTY      STAT   TIME COMMAND
5736 pts/1    Ss     0:00 emacs

Lista de todos los procesos

El ps el comando enumera los procesos. Puede enumerar todos los procesos en su sistema con -e opción:

$ ps -e | less
PID TTY          TIME CMD
  1 ?        00:00:03 systemd
  2 ?        00:00:00 kthreadd
  3 ?        00:00:00 rcu_gp
  4 ?        00:00:00 rcu_par_gp
  6 ?        00:00:00 kworker/0:0H-events_highpri
[...]
5648 ?        00:00:00 gnome-control-c
5656 ?        00:00:00 gnome-terminal-
5736 pts/1    00:00:00 bash
5791 pts/1    00:00:00 ps
5792 pts/1    00:00:00 less
(END)

Enumere solo sus procesos

La salida de ps -e puede ser abrumador, así que usa -U para ver los procesos de un solo usuario:

$ ps -U tux | less
 PID TTY          TIME CMD
3545 ?        00:00:00 systemd
3548 ?        00:00:00 (sd-pam)
3566 ?        00:00:18 pulseaudio
3570 ?        00:00:00 gnome-keyring-d
3583 ?        00:00:00 dbus-daemon
3589 tty2     00:00:00 gdm-wayland-ses
3592 tty2     00:00:00 gnome-session-b
3613 ?        00:00:00 gvfsd
3618 ?        00:00:00 gvfsd-fuse
3665 tty2     00:01:03 gnome-shell
[...]

Eso produce 200 procesos menos (más o menos cien, según el sistema en el que lo esté ejecutando) procesos para clasificar.

Puede ver la misma salida en un formato diferente con pstree comando:

$ pstree -U tux -u --show-pids
[...]
├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)
│                      └─{gvfsd-metadata}(3924)
├─ibus-portal(3836)─┬─{ibus-portal}(3840)
│                   └─{ibus-portal}(3842)
├─obexd(5214)
├─pulseaudio(3566)─┬─{pulseaudio}(3640)
│                  ├─{pulseaudio}(3649)
│                  └─{pulseaudio}(5258)
├─tracker-store(4150)─┬─{tracker-store}(4153)
│                     ├─{tracker-store}(4154)
│                     ├─{tracker-store}(4157)
│                     └─{tracker-store}(4178)
└─xdg-permission-(3847)─┬─{xdg-permission-}(3848)
                        └─{xdg-permission-}(3850)

Enumere solo sus procesos con contexto

Puede ver contexto adicional para todos los procesos que posee con -u opción.

$ ps -U tux -u
USER  PID %CPU %MEM    VSZ   RSS TTY STAT START  TIME COMMAND
tux  3545  0.0  0.0  89656  9708 ?   Ss   13:59  0:00 /usr/lib/systemd/systemd --user
tux  3548  0.0  0.0 171416  5288 ?   S    13:59  0:00 (sd-pam)
tux  3566  0.9  0.1 1722212 17352 ?  S<sl 13:59  0:29 /usr/bin/pulseaudio [...]
tux  3570  0.0  0.0 664736  8036 ?   SLl  13:59  0:00 /usr/bin/gnome-keyring-daemon [...]
[...]
tux  5736  0.0  0.0 235628  6036 pts/1 Ss 14:18  0:00 bash
tux  6227  0.0  0.4 2816872 74512 tty2 Sl+14:30  0:00 /opt/firefox/firefox-bin [...]
tux  6660  0.0  0.0 268524  3996 pts/1 R+ 14:50  0:00 ps -U tux -u
tux  6661  0.0  0.0 219468  2460 pts/1 S+ 14:50  0:00 less

Solucionar problemas con PID

Si tiene problemas con una aplicación específica, o simplemente tiene curiosidad sobre qué más usa una aplicación en su sistema, puede ver un mapa de memoria del proceso en ejecución con pmap :

$ pmap 1776
5736:   bash
000055f9060ec000   1056K r-x-- bash
000055f9063f3000     16K r---- bash
000055f906400000     40K rw---   [ anon ]
00007faf0fa67000   9040K r--s- passwd
00007faf1033b000     40K r-x-- libnss_sss.so.2
00007faf10345000   2044K ----- libnss_sss.so.2
00007faf10545000      4K rw--- libnss_sss.so.2
00007faf10546000 212692K r---- locale-archive
00007faf1d4fb000   1776K r-x-- libc-2.28.so
00007faf1d6b7000   2044K ----- libc-2.28.so
00007faf1d8ba000      8K rw--- libc-2.28.so
[...]

Identificadores de proceso

El procps-ng El paquete tiene todos los comandos que necesita para investigar y monitorear lo que su sistema está usando en cualquier momento. Ya sea que solo tenga curiosidad acerca de cómo encajan todas las partes dispares de un sistema Linux, o si está investigando un error, o si está buscando optimizar el rendimiento de su computadora, aprender estos comandos le brinda una ventaja significativa para comprender su sistema operativo.


Linux
  1. Encienda su editor de texto de terminal Linux con ed

  2. Embárcate en una aventura en tu terminal Linux

  3. Seguridad Linux:Proteja sus sistemas con fail2ban

  4. Aprende más sobre tu sistema Linux con inxi

  5. Cómo monitorear el rendimiento del sistema Linux con Sysstat

Cómo rescatar su sistema Windows o Linux con Rescatux

5 cosas que hacer cuando la GUI de su sistema Linux se congela

Monitoree el uso de recursos del sistema Linux con SysMonTask

Solucionar problemas y monitorear el rendimiento del sistema Linux con nmon

Cómo monitorear sus servidores Linux con Checkmk

Cómo instalar Sysdig para monitorear su sistema Linux