bash脚本放到crontab定时任务里面就失效,咋回事?

搬瓦工机场JMS

我有个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定时任务里面就失效,咋回事?

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏