Linux 脚本来杀死 Java 进程



我希望Linux脚本杀死在控制台上运行的java程序。

以下是作为 jar 运行的进程。

[rapp@s1-dlap0 ~]$ ps -ef |grep java
rapp    9473    1  0 15:03 pts/1    00:00:15 java -jar wskInterface-0.0.1-SNAPSHOT-jar-with-dependencies.jar
rapp   10177  8995  0 16:00 pts/1    00:00:00 grep java
[rapp@s1-dlap0 ~]$
你可以

简单地使用这样的pkill -f

pkill -f 'java -jar'

编辑:要杀死运行特定jar的特定Java进程,请使用以下基于正则表达式的pkill命令:

pkill -f 'java.*lnwskInterface'

如果你只想杀死任何/所有的java进程,那么你所需要的只是;

killall java

但是,如果你想特别杀死wskInterface进程,那么你已经完成了大部分工作,你只需要去掉进程ID;

PID=`ps -ef | grep wskInterface | awk '{ print $2 }'`
kill -9 $PID

应该这样做,不过可能有一种更简单的方法...

如果有多个Java进程,并且您希望用一个命令杀死它们尝试以下命令

kill -9 $(ps -ef | pgrep -f "java")

将"java"替换为任何进程字符串标识符,以杀死其他任何内容。

pkill -f 无论出于何种原因对我都不起作用。不管这样做,实际上通过ps aux清楚地向我展示的内容似乎非常挑剔。

经过一个下午的咒骂,我开始在我的开始脚本中加入以下内容:

(ps aux | grep -v -e 'grep ' | grep MainApp | tr -s " " | cut -d " " -f 2 | xargs kill -9 ) || true

使用 jps 列出正在运行的 Java 进程。该命令返回进程 ID 以及主类。您可以使用 kill 命令终止具有返回 id 的进程,也可以使用以下一个行脚本。

kill $(jps | grep <MainClass> | awk '{print $1}')

MainClass是正在运行的java程序中的一个类,其中包含main方法。

相关内容

  • 没有找到相关文章

最新更新