CentOS Linux下定时监测进程并自动重启SRS脚本

流媒体使用过程中发现SRS没有链接的时候非常容易自动停止所以我加了一个shell脚本来自动检测srs的运行情况

内容:Shell脚本;进程检查(pgrep);定时任务(crontab)

Step 1 编写Shell脚本
这个脚本执行以下任务——检查特定名字的进程是否在运行,如果没有运行则执行启动命令并输出一行记录到日志,如果进程正在运行也添加一条记录到日志。

创建脚本(放在哪里其实都可以)

//创建监听日志
cd /var/log
touch srslisten.log  

//创建监听脚本
cd /usr
mkdir shellboot
cd shellboot
touch listen.sh

 #vi编辑listen.sh

进入vi编辑脚本内容

#!/bin/bash

cd /root/srs/trunk
processnum=$(pgrep srs |wc -l)
processid=$(pgrep srs)
if [[ "$processnum" -gt "0" ]];then
 echo "有SRS启动进程ID$processid">> /var/log/srslisten.log
 echo "时间`date`">> /var/log/srslisten.log
else
 nohup ./objs/srs -c conf/push.gb28181.conf >/dev/null 2>&1 &
 echo "没有SRS启动`date` restart">> /var/log/srslisten.log
fi

 完成后保存并退出,开始测试运行,首先给脚本赋予权限

sudo -s chmod 777 listen.sh

 测试运行

./listen.sh


如果测试前进程已经运行,那么可以用kill -9杀掉再运行两次,并检查log文件。确认脚本工作正常后可以进行下一步了。

Step2 开启定时任务
crontab是一个周期性任务时间表,可以定时或按给定间隔时间运行特定脚本与任务。

编辑crontab表

crontab -e
进入vi,在文件最后插入

MAILTO=""
*/1 * * * * /etc/shadowsocks/listen.sh
(注意空格)

MAILTO="" 用于关闭发送邮件,否则返回值会做成邮件发送给本机,删掉本行后即可收取返回值

crontab每一行的结构如下

定时任务的设置规则:
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
关心【*】的含义就行,后面先不用管
五个*由左至右分别为:【分钟】、【小时】、【日】、【月】、【星期】,用来设置执行周期
而*/1代表的是“每隔多久”执行一次,上文的含义就是每隔1分钟执行一次/usr/shellboot/listen.sh脚本

保存退出,接着重启crond服务

service crond restart
等几分钟,杀进程后再看看日志情况。

相关命令

crontab -l,查看当前用户定时任务列表
crontab -r,删除当前用户的crontab文件

可以指定某个用户 crontab -u xx option

安装crontab
yum install vixie-cron,cron主程序
yum install crontabs,cron程序的外壳,用来驱动cron

启动服务
 

systemctl start crond

停止服务
 

systemctl stop crond

重新加载服务
 

systemctl reload crond

重启服务
 

systemctl restart crond

查看服务运行状态
 

systemctl status crond

设置开机启动
 

systemctl enable crond

查看是否开机启动
 

systemctl list-unit-files | grep crond 

参考链接https://blog.csdn.net/qq_42146669/article/details/80213061

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值