GNU/Linux >> Linux Esercitazione >  >> Linux

Monitora il tuo sistema Linux nel tuo terminale con procps-ng

Un processo, nella terminologia POSIX, è un evento in corso gestito dal kernel di un sistema operativo. Un processo viene generato quando avvii un'applicazione, sebbene ci siano molti altri processi in esecuzione sullo sfondo del tuo computer, inclusi programmi per mantenere l'ora del tuo sistema precisa, per monitorare nuovi filesystem, per indicizzare file e così via.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

La maggior parte dei sistemi operativi ha un monitoraggio dell'attività del sistema di qualche tipo in modo da poter apprendere quali processi sono in esecuzione in qualsiasi momento. Linux ne ha alcuni tra cui scegliere, inclusi GNOME System Monitor e KSysGuard. Entrambe sono applicazioni utili sul desktop, ma Linux offre anche la possibilità di monitorare il tuo sistema nel tuo terminale. Indipendentemente da quale si sceglie, è un compito comune per coloro che assumono un ruolo attivo nella gestione del proprio computer è esaminare un processo specifico.

In questo articolo, mostro come trovare l'ID di processo (PID) di un programma. Gli strumenti più comuni per questo sono forniti dal pacchetto procps-ng, incluso ps e pstree , pidof e pgrep comandi.

Trova il PID di un programma in esecuzione

A volte vuoi ottenere l'ID di processo (PID) di un'applicazione specifica che sai di avere in esecuzione. Il pidof e pgrep i comandi trovano i processi in base al nome del comando.

Il pidof command restituisce i PID di un comando, cercando il comando esatto per nome:

$ pidof bash 
1776 5736

Il pgrep il comando consente espressioni regolari (regex):

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

Trova un PID per file

Puoi trovare il PID del processo utilizzando un file specifico con il fuser comando.

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

Ottieni un nome di processo tramite PID

Se hai il numero PID di un processo ma non del comando che lo ha generato, puoi eseguire una "ricerca inversa" con ps :

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

Elenca tutti i processi

Il ps il comando elenca i processi. Puoi elencare ogni processo sul tuo sistema con il -e opzione:

$ 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)

Elenca solo i tuoi processi

L'output di ps -e può essere opprimente, quindi usa -U per vedere i processi di un solo utente:

$ 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
[...]

Ciò produce 200 processi in meno (dai o prendi un centinaio, a seconda del sistema su cui lo stai eseguendo) da ordinare.

Puoi visualizzare lo stesso output in un formato diverso 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)

Elenca solo i tuoi processi con il contesto

Puoi vedere un contesto extra per tutti i processi che possiedi con -u opzione.

$ 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

Risoluzione dei problemi con i PID

Se hai problemi con un'applicazione specifica o sei solo curioso di sapere cos'altro sul tuo sistema utilizza un'applicazione, puoi vedere una mappa della memoria del processo in esecuzione 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
[...]

ID processo

Il procps-ng pacchetto ha tutti i comandi necessari per indagare e monitorare ciò che il tuo sistema sta utilizzando in qualsiasi momento. Che tu sia solo curioso di sapere come si adattano tutte le parti disparate di un sistema Linux, o se stai indagando su un errore o stai cercando di ottimizzare le prestazioni del tuo computer, imparare questi comandi ti dà un vantaggio significativo per capire il tuo sistema operativo.


Linux
  1. Potenzia il tuo editor di testo del terminale Linux con ed

  2. Parti per un'avventura nel tuo terminale Linux

  3. Sicurezza Linux:proteggi i tuoi sistemi con fail2ban

  4. Scopri di più sul tuo sistema Linux con inxi

  5. Come monitorare le prestazioni del sistema Linux con Sysstat

Come salvare il tuo sistema Windows o Linux con Rescatux

5 cose da fare quando la GUI del tuo sistema Linux si blocca

Monitora l'utilizzo delle risorse del sistema Linux con SysMonTask

Risolvi i problemi e monitora le prestazioni del sistema Linux con nmon

Come monitorare i tuoi server Linux con Checkmk

Come installare Sysdig per monitorare il tuo sistema Linux