Introduzione
pidof
è un'utilità della riga di comando che consente di trovare l'ID del processo di un programma in esecuzione.
In questo articolo, spiegheremo come usare il comando pidof
su Linux.
Come usare il comando pidof
Esistono diverse implementazioni pidof
per le distribuzioni basate su Red Hat e Debian. Sulle distribuzioni Red Hat, il comando pidof
fa parte del pacchetto procps-ng
, mentre su Debian fa parte del pacchetto sysvinit-utils
. Esamineremo le opzioni comuni per entrambe le implementazioni.
La sintassi per il comando pidof
è la seguente:
pidof [OPTIONS] PROGRAM_NAME
Il comando accetta zero o più nomi come argomenti, ma in genere si passa a un solo nome pidof
.
Se invocato senza alcuna opzione, pidof
stampa i PID di tutti i programmi in esecuzione che corrispondono al nome specificato. Ad esempio, per trovare il PID del server SSH, eseguire:
pidof sshd
Se ci sono processi in esecuzione con nomi corrispondenti sshd
, i loro PID verranno visualizzati sullo schermo. Se non viene trovata alcuna corrispondenza, l'output sarà vuoto.
3180 664
pidof
ritorna 0
quando almeno un programma in esecuzione corrisponde al nome richiesto. Altrimenti, il codice di uscita è 1
. Questo può essere utile quando utilizzato negli script di shell.
Per essere sicuri che vengano visualizzati solo i PID del programma che stai cercando, usa il percorso completo del programma come argomento. Ad esempio, se si hanno due programmi in esecuzione con lo stesso nome situati in due directory diverse, pidof
visualizzerà i PID di entrambi i programmi in esecuzione.
Per impostazione predefinita, vengono visualizzati tutti i PID dei programmi in esecuzione corrispondenti. Utilizzare l'opzione -s
con pidof
per forzare la visualizzazione di un solo PID:
pidof -s program_name
L'opzione -o
consente di escludere un processo con un determinato PID dall'output del comando:
pidof -o pid program_name
Quando pidof
viene richiamato con l'opzione -o
, è possibile utilizzare uno speciale PID denominato %PPID
che rappresenta la shell chiamante o lo script shell.
Per restituire solo i PID dei processi in esecuzione con la stessa directory principale, utilizzare l'opzione -c
.
Questa opzione funziona solo come root o come utente sudo
:
pidof -c pid program_name
Esempio di utilizzo del comando pidof
L'esempio seguente mostra come utilizzare il comando pidof
in combinazione con il comando kill
per terminare un programma.
Supponiamo che il browser Firefox non abbia risposto e che sia necessario interrompere i processi di Firefox. Innanzitutto, trova i PID, con pidof
:
pidof firefox
Il comando stamperà tutti i processi di Firefox:
2661 2534 1134 1476
Una volta che conosci i processi PID di Firefox, invia il segnale SEGTERM
per terminarli tutti:
sudo kill -9 2661 2534 1134 1476
È inoltre possibile utilizzare l'espressione di sostituzione dei comandi $(...)
per terminare il programma in un solo comando:
sudo kill -9 $(pidof firefox)
Conclusione
Il comando pidof
viene utilizzato per scoprire i PID di uno specifico programma in esecuzione.
pidof
è un semplice comando che non ha molte opzioni. In genere invocherai pidof
solo con il nome del programma che stai cercando.