【问题标题】:Kill a java process (in linux) by process name instead of PID通过进程名称而不是 PID 杀死一个 java 进程(在 linux 中)
【发布时间】:2014-09-07 17:16:47
【问题描述】:

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

kill -9 112224

键入 PID 有点困难。有没有办法通过它的名字杀死进程?在一个命令中?

【问题讨论】:

  • pkill -f name 假设你已经安装了 pkill。

标签: linux process pid


【解决方案1】:

这里是杀死Java进程的命令是进程名称而不是进程ID。

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

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

1915 NodeManager
18119 DataNode
17680 Jps

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

kill -9 18119

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

【讨论】:

  • 如果您已经知道答案,那么将其作为问题发布的意义何在?你不应该删除帖子吗?
  • 嗨 Rahul,我的目的是分享这个解决方案,它可以用来杀死无法通过 pkill 或 killall 命令杀死的 Java 进程。
  • 嗨,感谢分享这个命令,我用它来杀死 jps“服务器”进程。即:kill jps|grep "Server" | cut -d " " -f 1,有多个服务器进程正在运行,此命令确实会杀死所有进程,但需要一段时间。
  • 杀死jps | ag "GenericTopology" | cut -d " " -f 1,只安装ag@github.com/ggreer/the_silver_searcher
【解决方案2】:

如何使用

killall firefox

【讨论】:

  • 我忘了说是指Linux中运行的Java进程,可以用JPS命令查看。这些进程不能被 killall 命令杀死。
【解决方案3】:

jps -l 帮助我终止了进程

kill `jps -l | grep "myjarname.jar" | cut -d " " -f 1`

【讨论】:

    【解决方案4】:

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

    netstat -tuplen

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

    杀死 -9 PID

    【讨论】:

      猜你喜欢
      • 2014-05-01
      • 2020-03-02
      • 2010-09-14
      • 2015-12-31
      • 2021-08-09
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      相关资源
      最近更新 更多