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