起動時に実行する必要があるスクリプトとは異なるコマンドを実行する前に実行する必要がある別のスクリプト(一部の変数を設定)を作成しました。
スクリプトを作成した後、コンソールは正常に実行しましたが、crontabにスクリプトを追加すると、そのスクリプト内の他のスクリプトは実行されません。
crontabに追加されたスクリプト(main-script.sh)は次のとおりです。
#!/bin/bash
source /home/pi/test-script.sh
python mycustompythonscript.py
test-script.shは次のとおりです(テストのために実際のスクリプトをこのスクリプトに置き換えました)。
#!/bin/bash
echo "greetings from test script" > test.txt
そのため、コンソールでmain-script.shを実行するとtest-script.shが実行され(ファイルが生成され)、Pythonスクリプトが実行されます。しかし、RPiを再起動した後、pythonスクリプトは実行されますが、test-script.shは実行されません(test.txtファイルは生成されません)。
cronがmain-script.shを実行している場合、test-script.shが実行されていない理由が何であるかを知っている人はいますか?
答え1
絶対パスを指定する必要がありますtest.txt
。それはあなたが期待する場所に置かない。
それを見つけてくださいsudo find / -iname "test.txt"
。
(Pythonスクリプトにもフルパス名が必要です。)