Introduzione
pgrep
è un'utilità della riga di comando che consente di trovare gli ID di processo di un programma in esecuzione in base a determinati criteri. Può essere un nome di processo completo o parziale, un utente che esegue il processo o altri attributi.
Il comando pgrep
fa parte del pacchetto procps
(o procps-ng
), che è preinstallato su quasi tutte le distribuzioni Linux.
Questo articolo tratta le basi del comando pgrep
Linux.
Usare il comando pgrep
La sintassi per il comando pgrep
è la seguente:
pgrep [OPTIONS] <PATTERN>
La corrispondenza <PATTERN>
viene specificata usando espressioni regolari estese.
Se richiamato senza alcuna opzione, pgrep
visualizza i PID di tutti i programmi in esecuzione che corrispondono al nome specificato. Ad esempio, per trovare il PID del server SSH, eseguire:
pgrep ssh
Se ci sono processi in esecuzione con nomi che corrispondono a "ssh", i loro PID verranno visualizzati sullo schermo. Se non viene trovata alcuna corrispondenza, l'output è vuoto.
947
1089
1104
4925
4926
Il comando restituisce 0
quando almeno un processo in esecuzione corrisponde al nome richiesto. Altrimenti, il codice di uscita è 1
. Questo può essere utile quando utilizzato negli script di shell.
pgrep
stampa ogni ID processo corrispondente su una nuova riga. L'opzione -d
consente di specificare un delimitatore diverso. Ad esempio, se si desidera utilizzare uno spazio come delimitatore, immettere:
pgrep ssh -d' '
947 1089 1104 4930 4954
L'opzione -l
permette a pgrep
di mostrare il nome del processo insieme al suo ID:
pgrep ssh -l
pgrep
usa espressioni regolari per eseguire l'operazione di ricerca ed elencherà tutti i processi che contengono "ssh" nei loro nomi:
947 sshd
1089 ssh-agent
1104 sshd
Se vuoi abbinare solo i processi i cui nomi sono esattamente come il modello di ricerca, dovresti usare:
pgrep '^sshd$' -l
947 sshd
1104 sshd
Il carattere caret (^
) corrisponde all'inizio della stringa e il dollaro $
alla fine.
Per impostazione predefinita, pgrep
corrisponde solo al nome del processo. Quando viene utilizzata l'opzione -f
, il comando corrisponde a elenchi di argomenti completi.
pgrep -f ssh
Utilizzare l'opzione -u
per visualizzare i processi eseguiti da un determinato utente:
pgrep -u root
Per specificare più utenti, separa i loro nomi con virgole:
pgrep -u root,alice
Puoi anche combinare opzioni e schemi di ricerca. Ad esempio, per stampare tutti i processi e i loro nomi eseguiti sotto il "alice" dell'utente e contiene "gnome" nei loro nomi, digitare:
pgrep -l -u alice gnome
Per visualizzare solo i processi avviati meno di recente o più recenti, utilizzare l' opzione -n
(per i più recenti) o -o
(per i più vecchi).
Ad esempio, per trovare il processo più recente avviato dall'utente "alice", inserire:
pgrep -lnu alice
Come puoi vedere dall'esempio sopra, puoi anche combinare le opzioni senza uno spazio tra loro e con un singolo trattino.
Per invertire la corrispondenza, ovvero per mostrare solo i processi che non corrispondono ai criteri indicati, utilizzare l'opzione -v
. Il seguente comando stamperà tutti i processi che non sono eseguiti dall'utente “alice”:
pgrep -v -u alice
L'opzione -c
dice pgrep
di stampare solo il conteggio dei processi corrispondenti. Ad esempio, per trovare i processi che vengono eseguiti come "alice" dell'utente, immettere:
pgrep -c -u alice
Conclusione
Il comando pgrep
viene utilizzato per scoprire i PID di un programma in esecuzione in base a criteri diversi.
Per ulteriori informazioni sul comando pgrep
, visitare la pagina man pgrep o digitare il man pgrep
proprio terminale:
man pgrep