2015-02-23 84 views
0

我使用以下命令来获取jar文件的PID。但目前没有jar文件正在运行。但是我还是会得到一些印制的随机数字。我很害怕调用命令kill -9 $ PID。 任何人都可以分享那个随机数是什么意思?为什么即使jar文件没有运行也会打印它。用于在Ubuntu中停止可执行JAR的Shell脚本

PID=`ps -ef | grep RushMiddleLayer | awk '{ print $2 }'` 
echo $PID 

像这样的随机数如423,461,457。请帮忙。

回答

1

您的ps -ef | grep找到它自己的grepps,并返回grep进程的PID。如果它真的找到了结果,它会返回两个或更多行或结果。您可以自己检查命令的输出以验证,用less替换上一条命令awk ...

你可以使用正则表达式“绝招”,并使用此grep的替代,所以它没有找到它自己的grep过程:

的grep [R] ushMiddleLayer

awk仍然会返回在多个PID的多行,如果有几个“RushMiddleLayer”正在运行。我相信其余的命令可以处理它。