CentOS - comando killall (per uccidere tutti i processi con nomi corrispondenti a un determinato modello)


18

Di recente ho iniziato a utilizzare CentOS. Sono andato a provare a utilizzare l' killallutilità ma l'ho trovato mancante, con me che ricevevo un command not foundmessaggio quando provavo a usarlo. Come posso ottenere questa funzionalità sul mio sistema in modo da poter, ad esempio, uccidere tutti i processi i cui nomi corrispondono a un modello?

Risposte:


24

L' pkillutilità è un'alternativa molto migliore a killall. killallnon è portatile poiché il comportamento del comando è molto diverso tra i sistemi operativi. pkillè portatile e si comporta allo stesso modo ovunque. È anche molto più flessibile in quanto offre molti modi diversi per abbinare i processi. Condivide inoltre lo stesso comportamento e argomenti di corrispondenza pgrepdell'utilità , che consente di vedere quali processi sarebbero stati abbinati e segnalati senza effettivamente segnalarli.

Utilizzo: pkill foo(che sarebbe lo stesso di killall foo)


2
Penso che questa risposta sarebbe stata migliore se avesse dimostrato come si può usare esattamente per sostituirla killall.
exebook

Tuttavia, non tutte le implementazioni pgrepsupportano l' -qopzione per essere silenziosi.
Kusalananda

sarebbe anche meglio se descrivesse di quale pacchetto fa parte
Xalorous

21

PSmisc contiene l' killallutilità, insieme ad alcuni altri piccoli e utili strumenti. Può essere aggiunto semplicemente con

yum install psmisc

2

Oltre alla soluzione di Patrick, la funzionalità del comando killall può essere replicata con quanto segue:

pkill -15 [process name]

Ad esempio, per uccidere tutti i processi memcached in esecuzione, si scriverà quanto segue:

pkill -15 memcached

'-15' è la rappresentazione numerica di un segnale POSIG SIGTERM. Per ottenere un elenco di tutti i segnali POSIX che possono essere attivati ​​in un processo, utilizzare il comando seguente:

kill -l

Ciò restituirà la seguente tabella:

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL      10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Ulteriori informazioni su cosa fa ogni segnale possono essere trovate qui .


Si noti che killallinvia il TERMsegnale per impostazione predefinita, non KILL.
Kusalananda


1
Buon punto. Modificato.
Daniel Kay,

Perché hai modificato solo per rimuovere "Spero che questo aiuti!" dalla fine, @Rui F Ribeiro? Ci sono regole comunitarie contro il tentativo di essere educati?
Daniel Kay,

0

Immagino che l'alternativa systemd sia systemctl halt(abbreviazione di systemctl isolate halt.target)?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.