CRON で実行したときだけプログラムが想定どおりに動かないと思ったら、PATH等の環境変数の設定が読み込まれていなかった。
crontab -e
等で 毎分実行させるシェルスクリプトを指定する場合は
* * * * * /home/physics/bin/test.sh > /dev/null 2>&1
などと設定るすが、CRONで test.sh
実行時は、通常bash起動時に実行される ~/.bashrc
や、ログオン時に実行される ~/.bash_profile
は読み込まれない。
なので、必要に応じて、必要な設定をシェルスクリプト内で読み込むようにしよう。
source /home/physics/.bashrc
経験上、CRONを実行するユーザーが誰か分からない場合もあるので、PATHはフルパスで指定するのがよい。