用进程名而不是PID来杀死java进程(在linux中)

I B*_*jwa 13 linux pid process

在配置/安装Hadoop集群时,我们经常需要终止Java Process/Daemon.我们看到Java Processes/Daemons运行jps命令.通常我们用它的PID来杀死Java进程.例如

kill -9 112224
Run Code Online (Sandbox Code Playgroud)

键入PID有点困难.有没有办法按名称杀死进程?在一个命令?

I B*_*jwa 27

以下是通过Process Name而不是ProcessID来杀死Java进程的命令.

kill `jps | grep "DataNode" | cut -d " " -f 1`
Run Code Online (Sandbox Code Playgroud)

让我解释一下这个命令的好处.假设您正在使用Hadoop集群.通常要求您检查使用jps命令运行的java守护程序.让我们说当你在工作节点上给出这个命令时,你会看到以下输出.

1915 NodeManager
18119 DataNode
17680 Jps
Run Code Online (Sandbox Code Playgroud)

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

kill -9 18119
Run Code Online (Sandbox Code Playgroud)

但是,输入命令PID使用kill命令有点困难.通过使用此答案中给出的命令,可以轻松编写进程的名称.我们还可以准备shell脚本来杀死hadoop集群中常用的deamons,或者我们可以准备一个shell脚本并且可以使用参数作为进程名称.

  • 嗨Rahul,我的目的是分享这个解决方案,它可以用来杀死无法用pkill或killall命令杀死的Java进程. (3认同)