Crontabシェルスクリプトgit pullと永久に起動

Crontabシェルスクリプトgit pullと永久に起動

起動時にリポジトリを確認し、常に起動ノードスクリプトを使用するようにRaspberry Piを設定しようとしています。

2番目の部分はうまくいきましたが、12個の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は再起動時に常に起動し、問題ありません。ただし、リポジトリは更新されません。これを使用してスクリプトを実行すると、sh /home/pi/code/script.shgit pullが正しく実行されます。最初はgit upで提案されているようにgit pullのエイリアスを設定しましたが、これが私の問題かもしれないと思って最も簡単なバージョンに戻りました。まだ成功していません。

どんな意見でも歓迎します。

編集:crontabの出力は接続の問題を示します。 Could not resolve host: bitbucket.orgスクリプトを実行する前にネットワークが設定されるまでどのように待ちますか?

ベストアンサー1

私はデバッグの助けを借りて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

おすすめ記事