Linux学习笔记——判断java进程是否存在,不存在则启动

1
2
3
4
5
6
7
8
9
10
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替换成对应的进程名称。例如:

1
ps -ef|grep myprocess|grep -v -grep|wc -l

不过这样会出现如果有其他进程能跟这个进程名称模糊匹配,也会查出当做是这个进程

例如:前面执行了一个命令:tail -f myprocess.out

虽然myprocess进程没有启动,但是此时执行

1
ps -ef|grep myprocess|grep -v -grep|wc -l

也会统计出一个进程,一直没搞懂如何判断某个执行进程是否存在,希望大佬们给点建议,谢谢。