起動時にリポジトリを確認し、常に起動ノードスクリプトを使用するように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.sh
git 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