it-swarm.com.de

Beenden Sie einen Java-Prozess (in Linux) nach Prozessnamen anstelle von PID

Bei der Konfiguration/Installation des Hadoop-Clusters müssen wir häufig einen Java-Prozess/Daemon beenden. Java-Prozesse/Daemons werden mit dem Befehl jps ausgeführt. Normalerweise beenden wir einen Java-Prozess mit seiner PID. Z.B.

kill -9 112224

Es ist etwas schwierig, die PID einzugeben. Gibt es eine Möglichkeit, den Prozess anhand seines Namens zu beenden? In einem einzigen Befehl?

14
I Bajwa

Hier ist der Befehl zum Beenden des Java-Prozesses durch seinen Prozessnamen anstelle der Prozess-ID.

kill `jps | grep "DataNode" | cut -d " " -f 1`

Lassen Sie mich mehr über den Nutzen dieses Befehls erklären. Nehmen wir an, Sie arbeiten mit dem Hadoop-Cluster. Es ist häufig erforderlich, dass Sie Java-Daemons überprüfen, die mit dem Befehl jps ausgeführt werden. Sagen wir, wenn Sie diesen Befehl auf Worker-Nodes geben, sehen Sie folgende Ausgabe.

1915 NodeManager
18119 DataNode
17680 Jps

Wenn wir den DataNode-Prozess beenden wollen, würden wir normalerweise den folgenden Befehl verwenden

kill -9 18119

Es ist jedoch etwas schwierig, den Befehl PID einzugeben, um den Befehl kill zu verwenden. Mit dem in dieser Antwort angegebenen Befehl können Sie den Namen des Prozesses leicht schreiben. Wir können auch Shell-Skripte vorbereiten, um häufig verwendete Dämonen im Hadoop-Cluster Zu beenden, oder wir können ein Shell-Skript vorbereiten und Parameter als Prozessnamen verwenden.

25
I Bajwa

Wie wäre es mit

killall firefox
0
ceremcem