使用cron时,服务重启不会发生

时间:2017-09-13 17:07:00

标签: linux bash cron

我有一个我从cron作业调用的脚本。脚本是

sort

当我从shell提示符运行脚本时,脚本完全按预期工作。

我将它作为cron作业安装如下(对于使用#!/bin/bash python /home/ubuntu/gateway-haproxy-config.py | tee /etc/haproxy/haproxy.cfg.new DIFF=$(diff /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.new) if [ "$DIFF" != "" ] then mv /etc/haproxy/haproxy.cfg.new /etc/haproxy/haproxy.cfg service haproxy restart else echo "unmodified" fi 的root):

sudo crontab -e

当cron运行时,脚本会成功写入一个新的配置文件,当diff不为空时,差异甚至用新的替换旧的。

作为cron作业运行时,* * * * * cd /home/ubuntu && ./gateway-config-cron 永远不会发生。我被迫手动重启服务。

1 个答案:

答案 0 :(得分:1)

这可能是一个与路径相关的问题,我可以通过提供service的完整路径使其按预期工作。

#!/bin/bash

python /home/ubuntu/gateway-haproxy-config.py | tee /etc/haproxy/haproxy.cfg.new
DIFF=$(diff /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.new)

if [ "$DIFF" != "" ]
then
    mv /etc/haproxy/haproxy.cfg.new /etc/haproxy/haproxy.cfg
    /usr/sbin/service haproxy restart
else
    echo "unmodified"
fi