Unix とか Linux には crontab って呼ばれるものがある。
これは Windows で言うと、タスクマネージャーみたいなもん。
レンタルサーバーとかに常駐プロセス(deamon) 作ったら怒られるので、定期的にプログラムを実行したりする。
んで、Plaggerインスコして crontab 利用する人の中に
「crontab は環境変数がないから、PERL5LIB の環境変数をきった Shell を叩いてます」
って人をちらほら見かけるんだけど、crontab -e はいくつかの環境変数設定できるので、叩くだけなら、いちいち Shell 作らなくてよいよって話。
PERL5LIB=/home/USER_NAME/local/lib/perl5:/home/USER_NAME/local/lib/perl5/site_perl MAILTO="" */10 * * * * plagger -c config.yaml > /dev/null 2>&1
こんな感じ。
1行目は、Perl 用のライブラリのパス設定。
2行目は、crontab で実行した標準出力やエラー出力をどこにメールするかってのをクリア。
4行目は、10分毎にコマンド叩いて、標準出力を /dev/null(ゴミ箱みたいなもの)へ送って、エラー出力も一緒に捨てるって事。
MAILTO=”” 書いとけば実行結果やエラー出力がメールされてることはないと思うけど念のために出力捨てといた方がいいかも。
crontab の詳しい設定は、Googleで検索した1件目の所でもリンクしとく。
* crontab設定
cron の設定ガイド
コメント
cron で起動されるほかのプロセスに影響しないように、
env PERL5LIB=… plagger
として起動するほうがいいんじゃないかしら。別に悪影響はないだろうけど。
なるほど。1コマンドずつ環境変数設定するのも有りですね!
特殊なケースではあると思いますけど。