Cron
crontab shell 腳本 git pull 並永遠啟動
我正在嘗試設置一個 Raspberry Pi 以在啟動時檢查一個 repo,然後永遠啟動一個節點腳本。
我得到了第二部分的工作,但我嘗試了十幾個 git 命令都沒有成功。
這是我這樣訪問的 crontab:
crontab -u pi -e
@reboot /bin/sh /home/pi/code/script.sh
現在我的腳本具有
-rwxr-xr-x
訪問權限,如下所示:#!/bin/sh cd /home/pi/code /usr/bin/sudo -u pi -H /usr/bin/git pull origin master /usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js
永遠在重新啟動時啟動 server.js,沒問題,但 repo 永遠不會更新。如果我使用它執行腳本
sh /home/pi/code/script.sh
會正確觸發 git pull ……我最初為 git pull 設置了一個別名,就像推薦的那樣 git up ,但認為這可能是我的問題,所以我回到了最簡單的版本。仍然沒有成功。歡迎任何意見。
編輯:crontab 的輸出表明連接問題:
Could not resolve host: bitbucket.org
在執行腳本之前如何等待網路設置?
在獲得幫助調試並嘗試 Phlogi 的解決方案但沒有成功後,我決定回到原來的 crontab 並添加程式碼以等待網路介面準備好。這是腳本現在的樣子:
#!/bin/sh while ! ping -c 1 -W 1 bitbucket.org; do echo "Waiting for bitbucket - network interface might be down..." sleep 1 done cd /home/pi/code && /usr/bin/sudo -u pi -H git checkout master && /usr/bin/sudo -u pi -H git up /usr/bin/sudo -u pi -H /home/pi/.nvm/v0.11.11/bin/forever start /home/pi/code/server.js