我有个bash脚本,里面的内容是:if ! [[ `ps aux|grep mosquitto |grep -v grep` ]] ;then mosquitto -c /etc/mosquitto/mosquitto.conf -d; fi;
脚本的作用是检测mosquitto有没有启动,没有就启动。
脚本我保存为mqtt.sh,并保存在/下,chmod +x mqtt.sh加了执行权限了
我直接在ssh里面执行bash /mqtt.sh就可以正常检测并启动mosquitto
但是放到crontab里面就不行
*/1 * * * * echo "11" >> /1.txt
*/1 * * * * bash /mqtt.sh
每分钟执行一次,上面的输出11的都每分钟可以正常输出一次。就是下面那个mqtt.sh的没有作用。没有正常启动mosquitto
求大佬们指点一下是什么情况?
广东网友:为什么不用进程守护呢
贵州网友:mosquitto路径写完整试试,可能crontab环境没有PATH变量
重庆网友:需要完整路径
甘肃网友:bash 脚本里 把 PATH 填上就好了。。。
新疆网友:楼上正解
上海网友:
大佬,我是用apt安装的mosquitto,我要怎么查找mosquitto的完整路径呢?
我用find命令查出来有下面这些,哪个才是我要的呢?
root@NotableAcceptable-VM:/var/log# find / -name mosquitto
/etc/mosquitto
/etc/init.d/mosquitto
/etc/logrotate.d/mosquitto
/usr/share/doc/mosquitto
/usr/sbin/mosquitto
/var/lib/mosquitto
/var/log/mosquitto
陕西网友:可能是脾气不好 闹情绪
上海网友:
大佬,我是用apt安装的mosquitto,我要怎么查找mosquitto的完整路径呢?
我用find命令查出来有下面这些,哪个才是我要的呢?
root@NotableAcceptable-VM:/var/log# find / -name mosquitto
/etc/mosquitto
/etc/init.d/mosquitto
/etc/logrotate.d/mosquitto
/usr/share/doc/mosquitto
/usr/sbin/mosquitto
/var/lib/mosquitto
/var/log/mosquitto
重庆网友:大佬,啥意思?可以详细指点下吗?新手不太懂。。
台湾网友:大佬,啥意思?可以详细指点下吗?新手不太懂。。
黑龙江网友:找到了,要usr/sbin里面
湖南网友:是把要定时执行的.sh脚本路径填完整,bash命令的路径也填完整看看,一般bash命令是在/bin目录下,就填/bin/bash
广东网友:搞定了,多谢大佬
未经允许不得转载:美国VPS_搬瓦工CN2 GIA VPS » bash脚本放到crontab定时任务里面就失效,咋回事?