Home > 仕事のこと > daemontools で環境変数の設定してスクリプトを起動

daemontools で環境変数の設定してスクリプトを起動

daemontools 付属のコマンド envdir。
http://cr.yp.to/daemontools/envdir.html

envdir runs another program with environment modified according to files in a specified directory.

指定されたディレクトリ内にあるファイルに記述されたものを環境変数として使ってプログラムを動かすよ。

まずは、よくある run スクリプト。

/service/my_service/run
#!/bin/sh

exec setuidgid username /path/to/script 2>&1

これで実行している /path/to/script 内で ENV_FOO = foo, ENV_BAR = bar という環境変数を参照している場合。

/service/my_service/run
#!/bin/sh

exec setuidgid username envdir ./env /path/to/script 2>&1

今回の場合だと、「指定されたディレクトリ」というのが "./env" です。
なので、/service/my_service/env というディレクトリを作成し、そのディレクトリ内に設定したい環境変数名でファイルを作成し、そのファイルの中に設定したい環境変数の値を書き込みます。

/service/my_service/env/ENV_FOO(中身は foo)
/service/my_service/env/ENV_BAR(中身は bar)

また、ENV_FOO が空ファイルでかつ ENV_FOO が既に設定されている場合(別の場所で export とかしている場合)は ENV_FOO を環境変数から削除されます。ENV_FOO がそもそも環境変数にない場合は空ファイルを作成しても envdir は何もしません。(ENV_FOO = '' みたいなことにはならない)

Catalyst アプリの設定ファイルを読み込んで実行させるスクリプトを daemontools で起動させる場合は /service/my_app/evn/MYAPP_CONFIG_LOCAL_SUFFIX なんかを作成しておくといいよね、というしめ方をしてみる。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://hibinokoto.jp/mt/mt-tb.cgi/276
Listed below are links to weblogs that reference
daemontools で環境変数の設定してスクリプトを起動 from 日々のこと

Home > 仕事のこと > daemontools で環境変数の設定してスクリプトを起動

Search
Feeds

Return to page top