杀死一个Java进程(在Linux中)的进程名称,而不是PID

在configuration/安装Hadoop集群时,我们通常需要杀死一个Java进程/守护进程。 我们看到用jps命令运行的Java进程/守护进程。 通常我们用PID来杀死一个Java进程。 例如

 kill -9 112224 

inputPID是有点困难的。 有没有办法通过名称来杀死进程? 在一个单一的命令?

Solutions Collecting From Web of "杀死一个Java进程(在Linux中)的进程名称,而不是PID"

这里是通过Process Name而不是ProcessID来杀死Java进程的命令。

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

让我来解释一下这个命令的好处。 假设您正在使用Hadoop集群。 通常需要检查运行jps命令的java守护进程。 比方说,当你在工作节点上给这个命令,你会看到下面的输出。

 1915 NodeManager 18119 DataNode 17680 Jps 

通常,如果我们要杀死DataNode进程,我们将使用以下命令

 kill -9 18119 

但是,键入PID要使用kill命令有点困难。 通过使用这个答案给出的命令,很容易写出进程的名字。 我们也可以编写shell脚本来杀死hadoop集群中常用的deamon,或者我们可以准备一个shell脚本,并可以使用参数作为进程名。

如何使用

 killall firefox 

获取该java进程运行的进程ID

netstat -tuplen

您要杀死并运行的进程的进程ID(PID)

kill -9 PID