Wie man alle Python-Prozesse außer einem von Bash beendet


10

Wie kann ich alle Python-Prozesse mit Ausnahme eines Python-Skripts aus dem Bash beenden? (Ich kenne seinen Namen, aber seine PID kann manchmal geändert werden).

Ich brauche irgendwie pkill -f "python"aber mit dem Ausschluss des Python-spezifischen Skripts.

Bitte beraten.

Antworten:


12

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

Update: Schritt-für-Schritt-Erklärung wie in den Kommentaren angefordert

  • ps aux |grep python- Alle Prozesse anzeigen, die dem pythonMuster entsprechen
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - Prozess ausschließen, den Sie nicht töten möchten
  • awk '{print $2}' - zweites Ausgabefeld anzeigen, es ist PID.
  • xargs kill- killBefehl auf jedes Eingabearg (PID) anwenden .

Wenn Sie mit dem xargsBefehl nicht vertraut sind , würde ich Ihnen raten, sich keine Sorgen zu machen, wenn Sie ihn nicht sofort verstehen. Es könnte zum ersten Mal ziemlich schwierig erscheinen. Ich habe ein sehr einfaches Beispiel für seine Verwendung gepostet. Sie können bei Google nach mehr suchen.


1
Großartig, aber können Sie bitte erklären, wie es funktioniert? Was ist zum Beispiel awk '{print $ 2}' und xargs kill?
user370717

awk '{print $2}' - druckt das zweite psAusgabefeld, im aktuellen Fall PID. xargswendet killBefehl auf jeden anPID
user1700494

Das in einen Kommentar einzufügen ist nett, aber ich würde lieber für Ihre Antwort stimmen, nachdem dieser gut formatierte Kommentar in Ihre Antwort integriert wurde.
Küken
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.