I Bajwa I Bajwa - 11 months ago 57
Linux Question

Kill a java process (in linux) by process name instead of PID

While configuring/installing Hadoop cluster we often need to kill a Java Process/Daemon.
We see Java Processes/Daemons running with

Usually we kill a Java process with its PID. E.g.

kill -9 112224

It is little bit difficult to type the PID. Is there a way to kill the process by its name? In a single command?

Answer Source

Here is the command to kill the Java process by is Process Name instead of its ProcessID.

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

Let me explain more, about the benefit of this command. Lets say you are working with Hadoop cluster. Its often required that you check java daemons running with jps command. Lets say when you give this command on worker nodes, you see following output.

1915 NodeManager
18119 DataNode
17680 Jps

Usually, if we want to kill DataNode process, we would use following command

kill -9 18119

But, it is little bit difficult to type the PID, to use kill command. By using the command, given in this answer, it is easy to write the name of the process. We can also prepare shell scripts to kill commonly used deamons in hadoop cluster, or we can prepare one shell script and can use parameter as process name.