PCOUNT=`ps -ef|grep java|grep -v -grep|wc -l`
echo PCOUNT=${PCOUNT}
if [ ${PCOUNT} -ne 0 ]; then
echo "Process is running!"
else
echo "Starting process..."
sh ./start.sh
fi
其中,wc(Word Count)命令的功能爲統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出
-l :統計行數:使用換行符‘\n’作爲行結束標誌,實際是統計換行符個數
grep -v -grep :去除包含grep的進程行
-ne :(not equal)不等於
如果需要查看某個java進程,把java替換成對應的進程名稱。例如:
ps -ef|grep myprocess|grep -v -grep|wc -l
不過這樣會出現如果有其他進程能跟這個進程名稱模糊匹配,也會查出當做是這個進程
例如:前面執行了一個命令:tail -f myprocess.out
雖然myprocess進程沒有啓動,但是此時執行
ps -ef|grep myprocess|grep -v -grep|wc -l
也會統計出一個進程,一直沒搞懂如何判斷某個執行進程是否存在,希望大佬們給點建議,謝謝。