Shell 在 Ubuntu 中停止可执行 JAR 的脚本

Shell Script to Stop an Executable JAR in Ubuntu

我使用以下命令获取 jar 文件的 PID。但目前没有 jar 文件 运行。但我仍然打印了一些随机数。我害怕调用命令 kill -9 $PID。 谁能分享那个随机数是什么意思?为什么即使 jar 文件不是 运行.

也会打印
PID=`ps -ef | grep RushMiddleLayer | awk '{ print  }'`
echo $PID

423、461、457 之类的随机数。请帮忙。

您的 ps -ef | grepps 中找到它自己的 grep 行,并且 return 获取 grep 进程的 pid。如果它确实找到了一个结果,它将 return 两行或更多行或结果。您可以自己检查命令的输出以进行验证,将最后一个命令 awk ... 替换为 less.

您可以使用正则表达式 "trick" 并改用此 grep,因此它找不到自己的 grep 进程:

grep [R]ushMiddleLayer

但是如果有多个 "RushMiddleLayer" 运行,awk 仍然会在多行中 return 多个 pid。我相信您的其余命令可以处理。