12月 8th, 2008

Apacheぜ Lockファイルについぜ

Posted in Apache by admin

RPMパッケージ版ぜ Apache起動停止スクリプトでは、「現在プロセス起動中であるかどうか」の判断基机 としぜ “/var/lock/subsys/httpd”のようなロックファイルを作成/削除する実装を組んでいる場合があります。しかし、Apache側のディレクティブで? 義しているLockFileは以下のようなもののようです。

AcceptMutex? が fcntl や flock? に設定されて使用されている場合に、使用されるロックファイルへのパスを LockFile ディレクティブで設定します。

Mutexは簡単にいうとマルチプロセスの処理同士が衝突しないようにする為の朎 他制御の? 組みです。この朎 他制御の方? をAcceptMutex ディレクティブぜ “flock”、”fcntl”にした場合、LockFileディレクティブで指定した「ファイル」をロックファイルとして指定するというものです。ただし、Redhat付属RPMぜ Apacheでは、AcceptMutexはデフォルト”sysvsem”(朎 他処理の? 装ぜ SySV 形? のセマフォを使う)になっており、LockFile ディレクティブは? 能していません。AcceptMutexの値はコンパイル時にアーキテクチャやプラットホームから判断されて決定されます。

# /usr/local/apache/bin/httpd -V
Server version: Apache/2.2.10 (Unix)
Server loaded:? APR 1.3.3, APR-Util 1.3.4
Server MPM:???? Prefork
threaded:???? no
forked:???? yes (variable process count)
Server compiled with….
-D APACHE_MPM_DIR=”server/mpm/prefork”
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D DEFAULT_LOCKFILE=”logs/accept.lock”

http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#acceptmutex

You can leave a comment, or trackback from your own site. RSS 2.0

Leave a comment