shell脚本监控(循环)判断程序进程是否存在,如果存在则不执行,如果不存在则执行启动程序

 Linux后台运行命令:

nohup  sh  run.sh  &

           nohup 是 no hang up 的缩写,就是不挂断的意思。

nohup和&的区别

& : 指在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行

———————————————————————————————————————————

脚本run.sh:

#!/bin/sh
while true
do
        process=`ps -ef| grep mysqld | grep -v grep`; #查询mysqld进程,grep -v grep去掉grep进程

        if [ "$process" == "" ]; then
                sleep 1;
                echo "process 不存在,开始执行";
                nohup python mysql.py &;
        else
                echo "process exsits";
                break;
        fi
done

或者:通过进程数判断进程是否运行,如果没有就启动程序

#!/bin/sh
while [ 1 ]; do
sleep 10
count=`ps -ef|grep send_to_mongo|grep -v grep|wc -l`
echo $count
if [ "$count" -eq 0 ];then
echo "start process....."
nohup python  send_to_mongo.py &
else
echo "runing....."
fi
done
#启动此脚本时在后台运行:nohup  

 

    原文作者:爱若手握流沙
    原文地址: https://blog.csdn.net/QMW19910301/article/details/82972313
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞