все еще “мертвый httpd, но subsys, заблокированный” даже после фиксации некоторого источника

/proc/sys/fs/file-nr показывает, что количество дескрипторов файлов открывается в масштабе всей системы и максимум в масштабе всей системы. Для отдельных процессов можно посмотреть на /proc/$pid/fd/*.

3
задан 11 December 2013 в 01:06
5 ответов

На моем сервере была такая же ошибка:

> service httpd status
httpd dead but subsys locked

Обнаружено, что каталог / var / run / httpd НЕ был доступен для чтения / выполнения всем миром:

drwx------   2 root      apache    4096 Apr 23 14:15 /var/run/httpd

Следовательно, любой пользователь (кроме root) не мог проверить pidfile (который действительно существовал)! Httpd-Process уже работал нормально, но служебная команда не смогла прочитать pidfile ...

# chmod a+rx /var/run/httpd

действительно устранил проблему:

> service httpd status
httpd (pid  2848) is running...
6
ответ дан 3 December 2019 в 05:04

На данный момент самая важная проблема - это фатальная ошибка в вашем файле конфигурации. Вывод apachectl configtest довольно окончательный.

Менее ясно, что вы делаете с этим. Как отмечали другие, включение /etc/zce.rc - это пережиток Zend, о котором я знаю очень мало. Если вы думаете, что вам это нужно, вам нужно выяснить, куда пропал указанный файл, и вернуть его; здесь могут помочь резервные копии вашей системы. Если вы думаете, что вам это не нужно, вы можете попробовать прокомментировать строку 32 из / etc / sysconfig / httpd и посмотреть, запустится ли тогда apache.

Изменить : просто чтобы сделать действительно уверены, что мы не упускаем какой-то важный вывод об ошибке, потому что он куда-то попадает, не могли бы вы отредактировать в свой вопрос вывод

find /etc/httpd /etc/zce.rc -type f -exec grep -i errorlog {} /dev/null \;

Edit 2 : ах, это относительные пути. Не могли бы вы также добавить значение ServerRoot ?

0
ответ дан 3 December 2019 в 05:04

В итоге я переключил платформу Linux с RedHat на CentOs и начал снова с нуля, и все работало без сбоев.

  • не уверен, что это проблема платформы, но это помогло решить мою проблему. 1291]
-1
ответ дан 3 December 2019 в 05:04

Недавно обновился до RHEL 6 и имел ту же проблему. После долгих размышлений я обнаружил, что значение по умолчанию для расположения файла PID в файле / etc / sysconfig / httpd и / etc / httpd / conf / httpd. conf были другими. По умолчанию было /var/run/httpd/httpd.pid , а значение в файле httpd.conf было /var/run/httpd.pid .

Я исправил значение в httpd. conf , был создан каталог httpd в / var / run , и ложное сообщение исчезло.

3
ответ дан 3 December 2019 в 05:04

Пришлось изменить httpd.config в / etc / httpd / conf /

с: PidFile запустить / httpd.pid кому: PidFile /var/run/httpd.pid

Кроме того, изменен файл httpd в /etc/sysconfig/[1284ghtfrom:

PIDFILE = / var / run / httpd.pid

Выполните следующую команду:

killall -9 httpd

затем, чтобы снять блокировку httpd:

rm -f / var / lock / subsys / httpd

И перезапустил Apache: перезапуск службы httpd

0
ответ дан 3 December 2019 в 05:04

Теги

Похожие вопросы