Не запускается apache. В error логе: (28)No space left on device: AH02478: failed to create proxy mutex. Место есть!

Аватар пользователя admin

В некоторых случаях, получается очень странная ситуация. Веб-сервер apache не запускается, в логе ошибок мы видим сообщения вида:

(28)No space left on device: AH02478: failed to create proxy mutex


но место на диске есть. Что делать?

Довольно редкая ошибка, связанная с неправильной реализацией работы apache с семафорами. Сообщение "No left space on device" относится в данном случае не к месту на диске, а к месту в таблице семафоров ядра Linux. Чтобы запустить apache, достаточно либо перегрузить сервер, либо почистить семафоры, которые остались активными в ядре, но которые не использует ни один процесс apache по причине того, что таковых процессов в системе уже просто нет.

Почистить можно с помощью следующего bash-скрипта:

   sems=$(ipcs -s | grep apache | awk --source '/0x0*.*[0-9]* .*/ {print $2}')

   for sem in $sems
   do
    ipcrm sem $sem
   done

 

обратите внимание, что мы считает, что владельцем семафоров является пользователь apache. На системах, где пользователь у процесса httpd  (apche в debian и ubuntu) другой, вам необходимо использовать вместо "grep apache" имя нужного пользователя.

0
Ваш рейтинг: Нет