LoginSignup
0
0

セマフォ不足によるApacheサーバーの再起動問題

Last updated at Posted at 2023-11-26

【事象】

Apacheの起動・再起動を行った際に、下記のエラーが出てApacheが立ち上がらない

Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

/var/log/httpd/error_log を確認すると以下のようなメッセージが表示されている

No space left on device: AH00023: Couldn't create the ssl-cache mutex

【原因】

原因としては、セマフォが不足しているかららしい。
セマフォの状態は、ipcsコマンドで確認できます。

ipcs -s
------ セマフォ配列 --------
キー     semid      所有者  権限     nsems
0x00000000 1343490    apache     600        1
0x00000000 1376260    apache     600        1
0x00000000 1376261    apache     600        1
0x00000000 1376262    apache     600        1
0x00000000 1376263    apache     600        1
0x00000000 1343496    apache     600        1
0x00000000 1343497    apache     600        1
0x00000000 1343498    apache     600        1
0x00000000 1343499    apache     600        1
0x00000000 1343500    apache     600        1
0x00000000 1376269    apache     600        1

ここでApache関連のセマフォがずらっと大量に並んでいたら、
Apacheユーザーのセマフォに何らかの問題が発生して、Apacheの起動を妨げている可能性があるので、Apacheのセマフォをクリアにする必要があります。

そもそも、セマフォってなに?

セマフォ(Semaphore)は、オペレーティングシステムの中で、複数のプロセスが同時に行われる際に、それらが互いに干渉しないように制御するためのメカニズムです。簡単に言うと、セマフォはプロセス間の割り込み処理をコントロールするための信号システムのことを指します。

Apacheサーバーの再起動に失敗した原因として考えられるのは、システムがセマフォのリミットに達し、新たなセマフォを割り当てることができなくなった為。
システムで設定されているセマフォの最大数を超える、多くのプロセスやスレッドが同時に実行されることによりapacheの再起動に失敗しておりました。

[対策]

上記、理由によりApache関連のセマフォを解放する為、下記コマンドを実行する。
実行すると無事にapacheの再起動が出来ました。

ipcs -s | grep apache | awk ' { print $2 } ' | xargs ipcrm sem
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0