2017-09-13 66 views
0

我有一個腳本,我從cron作業調用。腳本是使用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 

當我從shell提示符運行腳本時,該腳本完全按照預期工作。

我安裝了它作爲一個cron作業(使用sudo crontab -e根)如下:

* * * * * cd /home/ubuntu && ./gateway-config-cron 

當cron的運行,該腳本成功地寫了一個新的配置文件,該差異,甚至取代舊的當差異不是空的時候與新的一樣。

service haproxy restart作爲cron作業運行時不會發生。我被迫手動重新啓動服務。

回答

0

這可能是一個路徑相關的問題,我可以通過提供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 
相關問題