веб-серверное-подсказко

Date: 2009-03-04 04:39 GMT
Subject: веб-серверное-подсказко
Tags:

У опача (в частности, на генту) есть одна нехорошая особенность -- когда пытаешься его перезапустить (как /etc/init.d/apache2 restart или /usr/sbin/apache2ctl -k restart), оно для себя считает, что остановилось, но на самом деле процессы apache2 остаются висеть в памяти. Приходится иногда прибегать к killall -9 apache2. Но если делать это слишком часто, опач засирает всё вокруг своими семафорами, которые необходимо чистить, иначе в конце-концов начнёт вылетать совершенно дикая ошибка "No space left on device: Couldn't create accept lock" и опачъ невозбранно откажется стартовать навсегда. Семафоры вычищаются вот такой командой:

# for i in `ipcs -s | awk '/webmaster/ {print $2}'`; do (ipcrm -s $i); done

upd. Вот похожее ошибко и решение:

ipcs -s | grep webmaster

ipcs -s | grep webmaster | perl -e 'while () { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

Комментарии

если они у тебя продолжают висеть в памяти, значит не успели закрыть все дескрипторы, либо косяк с апачем