Apache2をdaemontoolsで動かす

Ads

前置き

  • init スクリプトで apachectl start としても何故か起動してくれない。
  • 他のサービスが全部 demontools 化されているので apahce だけ違うのがむかつく。
  • httpd は勝手に fork してバックグラウンドに移行してしまうので単純には daemontools で管理できない。
    • fghack は役に立たない。

重要オプション発見!

  1. man httpd を見てもバックグラウンドにならないオプションは無なかった。
  2. httpd.conf のディレクティブを見ても無かった。
  3. バックグラウンドにならないようにするパッチらしきものを発見した。
    1. しかし、上手く当たらない。
    2. パッチの内容を見て自力でソースを修正しようとしたら、パッチと同じあたりに幾つかの環境オプションがあるのを発見した。
    3. 試しに試してみた。
  4. NO_DATACH キタ━━━━(゚∀゚)━━━━ッ!!

というわけで以下のようにしてやれば Apache をフォアグラウンドで動かせることが分かった。

httpd -DNO_DETACH

runスクリプト

結果、出来た run スクリプトは以下の通り。

#!/bin/sh
APACHE_HOME=/opt/apache2
exec \
env - \
  PATH="$APACHE_HOME/bin" \
  LD_LIBRARY_PATH="$APACHE_HOME/lib" \
httpd -DNO_DETACH \
2>&1

コメント


Apache,httpd,svscan,daemontools,fork,background,foreground,daemon


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-08-20 (火) 22:38:31 (1938d)