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.