自動的にある時間ごとに実行していて欲しいプログラムがある。
このとき一定時間ごとに動くようにシェルを書くというのも1つの手だが、どんなきっかけでプロセスが終わってしまうとも限らない。
そういうのをターミナルから実行するのは、嬉しくない。
こういうときはcronを使えばいい。
時間間隔と実行して欲しいシェルを指定すると、あとは勝手に実行してくれる。
デーモンとして動いてくれるので、予後を気にする必要がない。
設定は非常に簡単。
$ crontab -e
と打てばいい。
こうすると、デフォルトのエディタで、設定ファイルが立ち上がる。
そこに例えば、
SHELL=/bin/bash
DIR=/home/hoge
0 1 * * * $DIR/hoge.sh
とか書いておく。
この例だと、1時間に1回、/home/hoge以下のhoge.shを実行してくれる。
デフォルトのエディタはFC5だとviだが、これはexportで指定できる。
export EDITOR=emacs
というのを.bashrcに足しておけばいい。
それと自分の環境では、シェルを実行するたびにいちいちメールが来るようになっていた。
これを回避するには、crontabに、
MAILTO=""
という1行を書いておけばいい。
ちなみに実行するhoge.shに、ROOTが入っている場合、hoge.shに環境変数の追加が必要になる。
自分の環境では、ROOTSYSとROOTDIR、PATH、LD_LIBRARYを付け加えると動いた。
それとファイルの場所はフルパスで指定する必要がある。
0 件のコメント:
コメントを投稿