mod_jail(http://www.freebsd.org/cgi/cvsweb.cgi/ports/www/mod_jail/)を使用してhttpdプロセスのみjail()しています。
種々動作チェックをしてほぼ問題無い状況なのですが、標準のrcスクリプトでhttpdを止められない点だけうまい解決策が見つかっていません。
環境:OS - FreeBS D8.0-RELEASE, httpd - Apache 2.2.14(portsから), mod_jail-0.4(portsから)
mod_jailはApache用のモジュールで、httpdの起動時にhttpdプロセス自身をjail()します。
標準のrcスクリプト(/usr/local/etc/rc.d/apache22 + /etc/rc.subr)では、ホスト配下のプロセスに関して個別にjidを確認しないようになっていると理解しています。
その為、起動(start)時は問題ないものの、停止(stop)時にhttpdのプロセスを見つけられず、停止できません。(手動でTERMシグナル送ってやればいけます)
今のところ、rc.d/apache22にjidを格納する変数を追加、rc.subr側でその変数がセットされていた場合pid,jidの一致でプロセスを探すように手を加えています。
アドホックなやり方で今ひとつ不満があるので、もう少しスマートな方法があれば教えて頂けないでしょうか。
ご回答有難う御座います。
私の質問内容通り、改変によりスクリプトからの停止は可能です。
その実装方法が強引だと感じているので、元々rcスクリプトに用意されている変数・関数群を利用して実現できないでしょうかという質問となります。