Questo articolo copre le basi di Linux pkill
comando.
pkill
è un'utilità della riga di comando che invia segnali ai processi di un programma in esecuzione in base a determinati criteri. I processi possono essere specificati dai loro nomi completi o parziali, da un utente che esegue il processo o da altri attributi.
Il pkill
il comando fa parte di procps
(o procps-ng
), che è preinstallato su quasi tutte le distribuzioni Linux. pkill
è basicity un wrapper attorno a pgrep
programma che stampa solo un elenco di processi corrispondenti.
Come utilizzare pkill
Comando #
La sintassi per pkill
il comando è il seguente:
pkill [OPTIONS] <PATTERN>
Il <PATTERN>
corrispondente viene specificato utilizzando espressioni regolari estese.
Quando viene invocato senza alcuna opzione, pkill
invia il 15
(TERM
) segnale ai PID di tutti i programmi in esecuzione che corrispondono al nome dato. Ad esempio, per interrompere con grazia tutti i processi di Firefox, eseguire:
pkill -15 firefox
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.
Per inviare un segnale diverso ai processi abbinati, invoca il pkill
comando con il --signal
opzione, seguito dal nome del segnale numerico o simbolico. Un altro modo per inviare un segnale è eseguire pkill
seguito dal nome o numero del segnale preceduto da un trattino (-
).
Usa kill -l
comando per elencare tutti i segnali disponibili.
I segnali più comunemente usati sono:
1
(HUP
):per ricaricare un processo.9
(KILL
):per terminare un processo.15
(TERM
):per interrompere con grazia un processo.
I segnali possono essere specificati in tre modi diversi:
- utilizzando un numero (ad es. -1)
- con il prefisso "SIG" (ad es. -SIGHUP)
- senza il prefisso "SIG" (ad es. -HUP).
Ad esempio, per ricaricare Nginxprocesses eseguiresti:
pkill -HUP nginx
pkill
usa espressioni regolari per abbinare i nomi dei processi. È sempre una buona idea usare pgrep
comando per stampare i processi abbinati prima di inviare loro segnali. Ad esempio, per elencare tutti i processi che contengono "ssh" nei loro nomi:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
Se vuoi inviare un segnale solo ai processi i cui nomi sono esattamente come il modello di ricerca, dovresti usare:
pkill '^ssh$'
Il cursore (^
) il carattere corrisponde all'inizio della stringa e il dollaro $
alla fine.
Per impostazione predefinita, pkill
corrisponde solo al nome del processo. Quando -f
viene utilizzata l'opzione, il comando corrisponde a elenchi di argomenti completi. Se il comando contiene spazi, cita l'intero comando:
pkill -9 -f "ping 8.8.8.8"
Usa -u
opzione per dire a pkill
per abbinare i processi eseguiti da un determinato utente:
pkill -u mark
Per specificare più utenti, separa i loro nomi con virgole:
pkill -u mark,danny
Puoi anche combinare opzioni e modelli di ricerca. Ad esempio per inviare KILL
segnala tutti i processi che vengono eseguiti sotto l'utente "mark" e contiene "gnome" nei loro nomi che digiteresti:
pkill -9 -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 eliminare lo schermo creato più di recente:
pkill -9 -n screen
Conclusione #
Il pkill
Il comando viene utilizzato per inviare segnali ai programmi in esecuzione in base a criteri diversi.
Per ulteriori informazioni su pkill
comando, visita la pagina man di pkill o digita man pkill
nel tuo terminale.
Se hai domande o feedback, sentiti libero di lasciare un commento.