#3 — Мини тюнинг Apache 2.2


Tagged , ,

Столкнулся с такой ситуацией что после аварийного завершения работы (к примеру отключили электричество) апача на моей фре, он(апач) не хотел запускаться должным образом. Помогал только ручной запуск и то не с первого раза. Логи ничего подозрительного не выявляли. После некоторых раздумий и экспериментов пришел к выводу что во всем виноват pid фаил апача, который остается после аварийной перезагруки системы в /var/run . Что самое удивительное апач по каким то причинам при запуске системы не трогал этот файл, хотя по идее, должен был его удалять и спокойно запускать процесс.
Решил эту проблему маленьким редактированием запускающего скрипта /usr/local/etc/rc.d/apache22 .
Перед последней процедурой apache22_prestart(), которая кстати является наоборот запускающей процедурой 🙂 , я дописал свою процедурку:

apache22_delpid() {
       if [ -e ${pidfile} ];
       then
            rm -f ${pidfile}
       fi
}

которая собственно проверяет существование pid файла и если он сущесвует, удаляет его. После чего апач нормально грузится дальше.
Главное не забыть прописать эту процедуру в запуск. Приведем apache22_prestart() ее к такому виду:

apache22_prestart() {
     apache22_delpid # Процедура удаления pid-файла
     apache22_checkfib
     apache22_precmd
}

Вот и все. Конечно этот метод не явлется идеальным, т.к. если снова попробовать запустить апач вручную, он затерет уже работающий pid файл, и врятли запустит новый процесс. Но я думаю нормальному человеку в голову не придет запускать еще один экзампляр апача 🙂

(c) Человек_Разумный

Share:

No comments

RSS / trackback

Respond