监听脚本是否挂起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 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