LoginSignup
31

More than 5 years have passed since last update.

cron実行時のカレントディレクトリは、実行ユーザのホームディレクトリ

Posted at

環境等によって違いがある可能性はありますんで、可能なら

crontab
* * * * * date > temp.txt

みたいなことをして、 temp.txt が吐き出される場所を確認したら良いかなと思います。

現象

プログラムと設定ファイルが同一ディレクトリにある前提で実装していたのだが、そのプログラムをcronから実行した途端動作しなくなった。

解決方法

答えはタイトルの通りなので、 ~/ に設定ファイルなりを置くとOK。
でもちょっと気持ち悪いよね、ということで、

  • プログラム内でフルパス(もしくは環境変数等から割り出せるディレクトリ)を指定
  • crontab で以下のようディレクトリ移動する。
crontab
* * * * * cd DIR ; ./PROGRAM

その他、まぁこの 「ホームディレクトリで実行される」 ということが分かっていれば好きに対策を講じることができるので安心です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31