2015-02-23 113 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」正在運行。我相信其餘的命令可以處理它。