fluentdをdaemontoolsで起動させる
今回はfluentdをdaemontoolsで自動起動(daemonize?)させるのにハマったのでメモ
はじめに
基本的に$HOME/service/fluentd/logの構成で作ったものを、/service/fluentdにシンボリックリンクを貼るのがキレイなやり方らしいので、まずはホームに移動して/service/fluentd/logのような構成でディレクトリを作る。
mkdir -p /service/fluentd/log
-pオプションを付けると途中の無いディレクトリも作成してくれる
runにshellで起動scriptを書く
fluentdとlogディレクトリ配下に「run」というshellScriptが書かれたファイルを置く(runという名前にしないと動かないらしい)
fluentd/runには以下のように書く
\#!/bin/sh export PATH=$HOME/.rbenv/bin:/usr/local/bin:$PATH eval "$(rbenv init -)" #もともと"$(rbenv init -zsh)"と書いてあったがzshはいらないらしい exec 2>&1 exec setuidgid {UserName} fluentd -c fluent.conf #{UserName}ユーザーでfluentdを起動
fluentd/log/runには以下のように書く
#!/bin/sh exec multilog .
シンボリックリンク(windowsのショートカット的なやつ)を貼る
ホームに作成した$HOME/service/fluentd
ディレクトリのシンボリックリンクをルートの/serviceに貼る作業
fluentdだったら
$sudo ln -s /Users/{UserName}/service/fluentd /service/fluentd
のように貼る
ちゃんとdaemonで起動してるか確認
- daemontoolsを再起動する
sudo launchctl unload path/to/com.github.mxcl.homebrew.daemontools.plist sudo launchctl load path/to/com.github.mxcl.homebrew.daemontools.plist
- プロセスから起動を確認する
ps aux | grep fluentd
して、プロセス一覧に
{UserName} 79207 0.0 0.2 2486892 17464 ?? S 3:08PM 0:03.29 /Users/{UserName}/.rbenv/versions/1.9.3-p392/bin/ruby /Users/{UserName}/.rbenv/versions/1.9.3-p392/bin/fluentd -c /service/fluentd/fluent.conf`
のような表示があれば、とりあえずは起動していると思う。
まとめ
色々曖昧な感じなので追記する必要がありそう...