Linux下用crontab实现定时检测mosquitto(MQTT服务)的启动情况,如果没启动则自动启动

最近在搞MQTT,但是不知道为什么,服务器的MQTT服务有时候会自动退出。于是想找个办法自动监控一下,之前找了个方法是写了个死循环的脚本,每隔几秒就检测一次,结果发现服务器的CPU占用率变得非常大。平时不开这个监控脚本的时候占用才1%不到,开了脚本后占用达到70%多。


于是想换一个方法来实现,目前是想到用crontab定时任务来实现,但是最少是1分钟执行一次。


先建个bash脚本文件,我这里是保存在/check_mqtt.sh,内容如下:

if ! [[ `ps aux|grep mosquitto |grep -v grep` ]] ;then /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf -d; fi;


添加执行权限

chmod +x check_mqtt.sh


添加系统定时任务

crontab -e

添加任务,每分钟检查一次

*/1 * * * * bash /root/check_mqtt.sh


这里有个坑,我之前一直没搞明白,那就是在check_mqtt.sh脚本里面,我原来写的是:if ! [[ `ps aux|grep mosquitto |grep -v grep` ]] ;then mosquitto -c /etc/mosquitto/mosquitto.conf -d; fi;
原来的内容是没有指定/usr/sbin/这个路径的,结果发现直接执行check_mqtt.sh就可以成功启动mosquitto,但是一放到crontab任务里面就不行了。后面在网上问了大神,才知道必须写完整路径才行,要不然crontab里面没有引入环境变量之类的,会找不到程序。



  1. 本网站所收集的部分资料来源于互联网,本站不对其真实性负责,也不构成任何其他建议。如果您发现有侵犯您权益的内容,请与我们取得联系,我们会及时修改或删除。
  2. 传递知识、传递力量,欢迎各位网友对本站的文章进行转载和分享。
  3. 本站QQ群交流群:904314688  群号:904314688
发表评论
 
评论列表(目前共有 条评论)
暂时还没有评论哦~

文章搜索

商家广告


版权所有:秋风雅居 (www.198933.com) ©2024 All Rights Reserved.

粤ICP备20031662号