Come uccidere tutti i processi Python tranne uno da Bash


11

Come posso uccidere da bash tutti i processi Python escludendo uno script Python. (Conosco il suo nome, ma il suo pid può essere modificato a volte).

Ho bisogno di tipo pkill -f "python"ma con l'esclusione dello script specifico di Python.

Si prega di avvisare.

Risposte:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

Aggiornamento: spiegazione dettagliata come richiesto nei commenti

  • ps aux |grep python- mostra tutti i processi che corrispondono al pythonmodello
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - escludi il processo che non vuoi uccidere
  • awk '{print $2}' - mostra il secondo campo di output, è PID.
  • xargs kill- applica il killcomando a ciascun input arg (PID).

Se non hai familiarità con il xargscomando, ti consiglio di non preoccuparti se non lo capisci subito. Potrebbe sembrare abbastanza complicato per la prima volta. Ho pubblicato un esempio molto semplice del suo utilizzo, potresti cercarlo su Google.


1
Fantastico, ma puoi spiegarci come funziona, ad esempio cosa è awk '{print $ 2}' e xargs uccide?
user370717

awk '{print $2}' - stampa il secondo campo di psoutput, nel caso attuale lo è PID. xargsapplica il killcomando a ciascunoPID
user1700494

1
Metterlo in un commento è bello, ma preferirei votare per la tua risposta dopo che quel commento ben formattato è stato integrato nella tua risposta.
pulcini
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.