监听脚本是否挂起sh

2019-04-16  本文已影响0人  空气KQ

pgrep

是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行
常用参数
pgrep 参数选项 程序名
-l 列出程序名和进程ID;
-o 进程起始的ID;
-n 进程终止的ID;

-l 同时显示进程名和PID
-o 当匹配多个进程时,显示进程号最小的那个
-n 当匹配多个进程时,显示进程号最大的那个
注:进程号越大,并不一定意味着进程的启动时间越晚

-o 当匹配多个进程时,显示进程号最小的那个
   1: [root@master ~]# pgrep -l sshd
   2: 3686 sshd
   3: 7907 sshd
   4: 8815 sshd
   5: 12874 sshd
   6: [root@master ~]# pgrep -l -o  sshd
   7: 3686 sshd
-n 当匹配多个进程时,显示进程号最大的那个
   1: [root@master ~]# pgrep -l -n sshd
   2: 12874 sshd

pgrep相当于 ps –eo pid,cmd | awk ‘{print 1,2}’ | grep KeyWord

#$? 表示最后一次输出的状态,0表示没有错误。gt表示大于
pgrep mysqld &> /software/mysql/null 

    if [ $? -gt 0 ] 

    then 

    echo "
date
 mysql is stop" >> /software/mysql/listenMysql.log 

    service mysql start 

    else 

    echo "
date
 mysql running" >> /software/mysql/listenMysql.log 

    fi 

设置定时器

设置crontab开机启动ntsysv chkconfig –level 35 crond on
yum install -y ntsysv
添加定时脚本crontab -e

*/1 * * * * /software/mysql/listenMysql.sh

查看定时任务crontab -l
重启定时service crond restart

linux利用shell实现守护进程的脚本

#!/bin/sh

#添加本地执行路径
export LD_LIBRARY_PATH=./

while true; do
        #启动一个循环,定时检查进程是否存在
        server=`ps aux | grep CenterServer_d | grep -v grep`
        if [ ! "$server" ]; then
            #如果不存在就重新启动
            nohup ./CenterServer_d -c 1 &
            #启动后沉睡10s
            sleep 10
        fi
        #每次循环沉睡10s
        sleep 5
done
上一篇下一篇

猜你喜欢

热点阅读