sysmerge IT

31 мая 2015 г.

Apache: (28)No space left on device: Очистка семафоров

Часто после падения сервера Apache он отказывается запускаться, выдавая подобную ошибку:
 [Tue Apr 21 15:50:00 2009] [emerg] (28)No space left on device: Couldn't create accept lock (/var/lock/apache2/accept.lock.19320) (5)  

Первым делом, конечно же, мы проверим место на диске(и заодно иноды) командами df -h и df -i соответственно. И внезапно может оказаться, что места на диске достаточно и иноды свободны. В чем же еще может быть причина? Она может быть в семафорах. Семафор - это средство для осуществления взаимодействия между различными потоками и их синхронизации.

Проверяем наличие семафоров с помощью команды ipcs:
 ipcs -s | awk '/apache/ {print $2}'   

Если на выходе есть данные, то удаляем с помощью этого кода:
 for i in `ipcs -s | awk '/apache/ {print $2}'`; do (ipcrm -s $i); done   

В случае частого возникновение такой проблемы можно и баш-скринт набросать. Ну и пробуем запустить Apache заново.
 service httpd restart