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