Questo articolo copre le basi di Linux pgrep
comando.
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 pgrep
il comando fa parte di procps
(o procps-ng
), che è preinstallato su quasi tutte le distribuzioni Linux.
Come utilizzare pgrep
Comando #
La sintassi per pgrep
il comando è il seguente:
pgrep [OPTIONS] <PATTERN>
Il <PATTERN>
corrispondente viene specificato utilizzando espressioni regolari estese.
Quando viene invocato 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 sono presenti processi in esecuzione con nomi corrispondenti a "ssh", i relativi PID verranno visualizzati sullo schermo. Se non vengono trovate corrispondenze, l'output è vuoto.
1039
2257
6850
31279
Il comando restituisce 0
quando almeno un processo in esecuzione corrisponde al nome richiesto. In caso contrario, il codice di uscita è 1
. Questo può essere utile quando si scrivono script di shell.
Se vuoi inviare segnali ai processi abbinati usa pkill
. Questo comando è un wrapper di pkill
e utilizza le stesse opzioni e la stessa corrispondenza dei modelli.
pgrep
stampa ogni ID processo abbinato su una nuova riga. Il -d
l'opzione consente di specificare un delimitatore diverso. Ad esempio, se desideri utilizzare uno spazio come delimitatore, inserisci:
pgrep ssh -d' '
1039 2257 6850 31279
Il -l
l'opzione dice a pgrep
per mostrare il nome del processo insieme al suo ID:
pgrep ssh -l
pgrep
utilizza espressioni regolari per eseguire l'operazione di ricerca ed elencherà tutti i processi che contengono "ssh" nei loro nomi:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
Se vuoi abbinare solo i processi i cui nomi sono esattamente come il modello di ricerca, dovresti usare:
pgrep '^ssh$' -l
6850 ssh
Il cursore (^
) il carattere corrisponde all'inizio della stringa e il dollaro $
alla fine.
Per impostazione predefinita, pgrep
corrisponde solo al nome del processo. Quando -f
opzione viene utilizzata il comando corrisponde a elenchi di argomenti completi.
pgrep -f ssh
Usa -u
opzione per dire a pgrep
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,mark
Puoi anche combinare opzioni e modelli di ricerca. Ad esempio, per stampare tutti i processi e i loro nomi che vengono eseguiti sotto l'utente "mark" e contengono "gnome" nei loro nomi, digitare:
pgrep -l -u mark gnome
Per visualizzare solo i processi avviati meno di recente (più vecchi) o più recenti (più recenti), utilizzare il -n
(per i più recenti) o -o
(per la meno recente).
Ad esempio, per trovare il processo più recente avviato dall'utente "mark", inserire:
pgrep -lnu mark
Come puoi vedere dall'esempio sopra, puoi anche combinare le opzioni senza uno spazio tra di loro e con un solo trattino.
Per invertire la corrispondenza, ovvero per mostrare solo i processi che non corrispondono ai criteri indicati, utilizzare il -v
opzione. Il comando seguente stamperà tutti i processi che non vengono eseguiti dall'utente “mark”:
pgrep -v -u mark
Il -c
l'opzione dice a pgrep
per stampare solo il conteggio dei processi di abbinamento. Ad esempio, per trovare i processi che vengono eseguiti come "mark" dell'utente, immettere:
pgrep -c -u mark
Conclusione #
Il pgrep
Il comando viene utilizzato per scoprire i PID di un programma in esecuzione in base a criteri diversi.
Per ulteriori informazioni su pgrep
comando, visita la pagina man di pgrep o digita man pgrep
nel tuo terminale.
Se hai domande o feedback, sentiti libero di lasciare un commento.