Die Lösung würde die Prozesse mit exaktem Muster herausfiltern, die pid analysieren und eine Argumentliste für die Ausführung von Kill-Prozessen erstellen:
ps -ef | grep -e <serviceNameA> -e <serviceNameB> -e <serviceNameC> |
awk '{print $2}' | xargs sudo kill -9
Erläuterung aus der Dokumenation:
ps wird eine Kopfzeile angezeigt, gefolgt von Zeilen mit Informationen über alle Ihre Prozesse, die Terminals steuern.
-e Informationen über die Prozesse anderer Benutzer anzeigen, einschließlich derer
-f Anzeige von uid, pid, übergeordneter pid, aktueller CPU-Auslastung, Prozessstart
El grep durchsucht eine beliebige Eingabedatei und wählt Zeilen aus, die
-e Muster, --regexp=Muster Angabe eines Musters, das bei der Suche in der Eingabe verwendet wird: eine Eingabe Zeile wird ausgewählt, wenn sie mit einem der angegebenen Muster übereinstimmt. Diese Option ist besonders nützlich, wenn mehrere -e Optionen verwendet werden, um um mehrere Muster anzugeben, oder wenn ein Muster mit einem Bindestrich beginnt (`-').
xargs - Argumentliste(n) konstruieren und Dienstprogramm ausführen
töten - einen Prozess zu beenden oder zu signalisieren
Nummer 9 Signal - KILL (nicht fangbarer, nicht ignorierbarer Kill)
Beispiel :
ps -ef | grep -e node -e loggerUploadService.sh -e applicationService.js |
awk '{print $2}' | xargs sudo kill -9
3 Stimmen
Glauben Sie mir! :'D Die erste Antwort, die Sie gewählt haben, ist viel komplexer als die Lösung, die Sie in Ihrer Antwort angegeben haben. Ich würde lieber deinen Weg wählen.
0 Stimmen
Die beste Möglichkeit zu prüfen, ob ein Prozess existiert: stackoverflow.com/questions/3043978/