Cara membunuh semua proses python kecuali satu dari bash


11

Bagaimana saya bisa membunuh dari bash semua proses python kecuali satu skrip python. (Saya tahu namanya, tapi pidnya kadang-kadang bisa diubah).

Saya perlu jenis pkill -f "python"tetapi dengan mengecualikan skrip khusus python.

Mohon saran.

Jawaban:


13

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

Perbarui: penjelasan langkah demi langkah seperti yang diminta dalam komentar

  • ps aux |grep python- tampilkan semua proses yang sesuai dengan pythonpola
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - kecualikan proses yang tidak ingin Anda bunuh
  • awk '{print $2}' - tampilkan bidang keluaran kedua, PID.
  • xargs kill- terapkan killperintah untuk setiap input arg (PID).

Jika Anda tidak terbiasa dengan xargsperintah, saya akan menyarankan Anda untuk tidak khawatir jika Anda tidak segera memahaminya. Ini bisa terlihat cukup rumit untuk pertama kalinya. Saya memposting contoh penggunaannya yang sangat sederhana, Anda dapat google untuk lebih.


1
Hebat, tetapi bisakah Anda menjelaskan bagaimana cara kerjanya, Misalnya apa awk '{print $ 2}' dan xargs kill?
user370717

awk '{print $2}' - mencetak bidang kedua dari psoutput, dalam kasus saat ini PID. xargsberlaku killperintah untuk masingPID
user1700494

1
Menyertakannya dalam komentar itu baik, tetapi saya lebih suka memilih jawaban Anda setelah komentar yang diformat dengan baik itu diintegrasikan ke dalam jawaban Anda.
anak ayam
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.