【发布时间】:2014-09-07 17:16:47
【问题描述】:
在配置/安装 Hadoop 集群时,我们经常需要终止 Java 进程/守护进程。
我们看到使用jps 命令运行的Java 进程/守护进程。
通常我们用它的 PID 杀死一个 Java 进程。例如
kill -9 112224
键入 PID 有点困难。有没有办法通过它的名字杀死进程?在一个命令中?
【问题讨论】:
-
pkill -f name 假设你已经安装了 pkill。
在配置/安装 Hadoop 集群时,我们经常需要终止 Java 进程/守护进程。
我们看到使用jps 命令运行的Java 进程/守护进程。
通常我们用它的 PID 杀死一个 Java 进程。例如
kill -9 112224
键入 PID 有点困难。有没有办法通过它的名字杀死进程?在一个命令中?
【问题讨论】:
这里是杀死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脚本,并可以使用参数作为进程名称。
【讨论】:
jps|grep "Server" | cut -d " " -f 1,有多个服务器进程正在运行,此命令确实会杀死所有进程,但需要一段时间。
jps | ag "GenericTopology" | cut -d " " -f 1,只安装ag@github.com/ggreer/the_silver_searcher
如何使用
killall firefox
【讨论】:
jps -l 帮助我终止了进程
kill `jps -l | grep "myjarname.jar" | cut -d " " -f 1`
【讨论】:
获取该java进程运行的进程ID
netstat -tuplen
您要杀死并运行的进程的进程 ID (PID)
杀死 -9 PID
【讨论】: