Shell 判断进程是否存在

需求:有时候在调用非本系统下面的服务时,需要先判断一下该服务是否已启动,如果没有的话则进行启动。

Shell 脚本

ps -ef | grep ProcessString | grep -v grep
if [ $? -ne 0 ]
then
dosomething to start
else
echo "runing"
fi
  • ps 命令里面的 ProcessString 是能唯一定位该进程的字符串
  • grep -v grep 是忽略掉 grep 本身的进程显示
  • $? 是上一个函数的返回值
  • -ne 表示不等于 ps 命令如果有结果的话,$? 的值就不为 0,否则等于 0

注意

  1. if 后面的 [] 要特别注意空格,不然命令就会报错