voglio uccidere tutti i processi che ricevo da:Come uccidere tutti i processi con un determinato nome parziale?
ps aux | grep my_pattern
Come fare?
Questo non funziona:
pkill my_pattern
voglio uccidere tutti i processi che ricevo da:Come uccidere tutti i processi con un determinato nome parziale?
ps aux | grep my_pattern
Come fare?
Questo non funziona:
pkill my_pattern
Usa pkill -f
, che corrisponde al modello per qualsiasi parte della riga di comando
pkill -f my_pattern
Se avete bisogno di una maggiore flessibilità nella scelta dei processi utilizzano
for KILLPID in `ps ax | grep 'my_pattern' | awk ' { print $1;}'`; do
kill -9 $KILLPID;
done
È possibile utilizzare grep -e ecc
-1 Non hai bisogno di un ciclo, puoi semplicemente' kill -9 \ 'ps ax | awk '[m] y_pattern {print $ 1}' \ '' (nota anche il refactoring, vedi anche il mio commento sulla risposta di @ synthesizerpatel). – tripleee
@ triple Nessun problema con il downvote, ma tu ** ti rendi conto che l'OQ era * "Voglio uccidere tutti i processi che ottengo da: ps aux | grep my_pattern" *, che ho accettato di dovere. –
Uccidere ucciderà tutti i processi in una volta sola, non è necessario un ciclo per quello. Se 'ps' restituisce tre processi 123, 234 e 345, puoi' uccidere 123 234 345' proprio come puoi 'rm' o' cat' argomenti di file multipli. – tripleee
Uccidete tutti i processi che corrisponde alla stringa "myProcessName":
uno di linea:
ps -ef | grep myProcessName | grep -v grep | awk '{print $2}' | xargs kill -9
Questo genererà un errore se non viene trovato alcun processo corrispondente al nome. Potresti voler usare 'ps -ef | grep myProcessName | grep -v grep | awk '{print $ 2}' | xargs -r kill -9' per fare in modo che xargs non esegua il comando se non viene fornito alcun argomento. – Epigene
Solo una leggera modifica, forse è meglio citare il nome del processo: 'ps -ef | grep 'myProcessName' | grep -v grep | awk '{print $ 2}' | xargs -r kill -9' Senza virgolette, solo uno dei miei processi in background è stato ucciso alla prima esecuzione. L'esecuzione di nuovo ha ucciso il resto. –
è possibile utilizzare il seguente comando per elencare il processo
ps aux | grep -c myProcessName
se avete bisogno di controllare il conteggio di t processo di cappello quindi eseguire
ps aux | grep -c myProcessName |grep -v grep
dopo di che si può uccidere il processo utilizzando
kill -9 $(ps aux | grep -e myProcessName | awk '{ print $2 }')
è possibile utilizzare il seguente comando per elencare il processo ps aux | grep -c myProcessName se è necessario controllare il conteggio di quel processo quindi eseguire ps aux | grep -c myProcessName | grep -v grep dopo di che si può uccidere il processo utilizzando kill -9 $ (ps aux | grep -e myProcessName | awk '{print $ 2}') –
suona male?
pkill `pidof myprocess`
esempio:
# kill all java processes
pkill `pidof java`
Se giudicare pkill -f PATTERN
un po 'troppo pericoloso, ho scritto ezkill uno script bash che richiederà di scegliere quali processi tra quelli che corrispondono al modello si vuole uccidere.
È possibile utilizzare il seguente comando per:
ps -ef | grep -i myprocess | awk {'print $2'} | xargs kill -9
o
ps -aux | grep -i myprocess | awk {'print $2'} | xargs kill -9
Funziona per me.
Benvenuti a StackOverflow. Utilizzare il rientro a 4 spazi o tabulazioni per le linee di codice in modo che siano formattati come blocchi di codice. I migliori saluti – YakovL
È possibile utilizzare il seguente comando per
kill -9 $(ps aux | grep 'process' | grep -v 'grep' | awk '{print $2}')
Inoltre è possibile utilizzare killall -r my_pattern
. -r
Interpreta il nome del processo come un'espressione regolare estesa.
killall -r my_pattern
Se non si vuole prendere il mal di testa di trovare l'ID del processo, utilizzare regexp per uccidere processo per nome. Ad esempio, per uccidere il codice seguente chrome farà il trucco.
killall -r --regexp chrome
è 'my_pattern' semplicemente una stringa del nome, oppure contiene caratteri speciali regex? –