物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

CRONでは .bashrc 等で設定した環境変数は読み込まれない

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はフルパスで指定するのがよい。