Назад | Перейти на главную страницу

apache не останавливается при использовании «service apache2 stop»

Я пытаюсь решить досадную проблему. У нас настроен сервер с nginx в качестве основного интерфейса, а затем Apache2 в качестве бэкенда для запуска наших сценариев Perl. Я борюсь с переписыванием некоторых скриптов Perl (поскольку они привыкли работать на гораздо более старой версии Perl), но у меня чертовски много работы с Apache. Когда я бегу:

service apache2 stop

Кажется, запускается:

root@admin:/home/user/web/example.com/logs# service apache2 stop
root@admin:/home/user/web/example.com/logs#

Но на самом деле он все еще работает! Команда его запуска:

/etc/init.d/apache2 stop

Если я запустил это вручную, я получу:

root@admin:/home/user/web/example.com/logs# /etc/init.d/apache2 stop
[ ok ] Stopping apache2 (via systemctl): apache2.service.

.. пока я захожу в браузер и перезагружаю страницу, она все равно загружается !!!!! (что означает, что Apache запущен)

У кого-нибудь есть предложения, где я могу искать? Это сводит меня с ума! Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация.

Я вижу, что запущено несколько процессов:

[] ps aux
root      5948  1.4  0.7 307664 91548 ?        Ss   13:32   0:00 /usr/sbin/apache2 -k start
www-data  5952  0.8  0.9 371080 111964 ?       S    13:32   0:00 /usr/sbin/apache2 -k start
www-data  5953  0.6  0.8 369416 110012 ?       S    13:32   0:00 /usr/sbin/apache2 -k start
www-data  5954  0.5  0.8 369416 110012 ?       S    13:32   0:00 /usr/sbin/apache2 -k start
www-data  5955  0.6  0.8 369416 110012 ?       S    13:32   0:00 /usr/sbin/apache2 -k start
www-data  5956  0.1  0.7 343800 90276 ?        S    13:32   0:00 /usr/sbin/apache2 -k start
www-data  5959  0.0  0.6 307688 79692 ?        S    13:32   0:00 /usr/sbin/apache2 -k start

ОБНОВИТЬ: Как и предполагалось, я попытался использовать это, чтобы убить его:

root@admin:~# pgrep apache2 | xargs kill -9
root@admin:~# pgrep apache2 | xargs kill -9
root@admin:~# pgrep apache2 | xargs kill -9
root@admin:~# pgrep apache2 | xargs kill -9
root@admin:~# pgrep apache2 | xargs kill -9
root@admin:~# pgrep apache2 | xargs kill -9

... но сразу после этого я снова вижу это! (все с одинаковыми идентификаторами)

root@admin:~# ps aux | grep apache
root      6080  0.4  0.7 307724 92052 ?        Ss   13:34   0:00 /usr/sbin/apache2 -k start
www-data  6084  0.2  0.8 369400 110024 ?       S    13:34   0:00 /usr/sbin/apache2 -k start
www-data  6085  0.2  0.8 369400 110024 ?       S    13:34   0:00 /usr/sbin/apache2 -k start
www-data  6086  0.1  0.8 369392 110240 ?       S    13:34   0:00 /usr/sbin/apache2 -k start
www-data  6087  0.1  0.8 369400 110024 ?       S    13:34   0:00 /usr/sbin/apache2 -k start
www-data  6088  0.1  0.8 369400 110244 ?       S    13:34   0:00 /usr/sbin/apache2 -k start
www-data  6400  0.3  0.8 369400 110024 ?       S    13:35   0:00 /usr/sbin/apache2 -k start
root      6520  0.0  0.0  14224   972 pts/0    S+   13:37   0:00 grep apache

ОБНОВЛЕНИЕ 2:

root@admin:~# killall -9 apache2
apache2: no process found
root@admin:~# ps aux | grep apache2
root      6977  1.2  0.8 315020 99236 ?        Ss   13:41   0:00 /usr/sbin/apache2 -k start
www-data  6981  0.4  0.9 376408 117364 ?       S    13:41   0:00 /usr/sbin/apache2 -k start
www-data  6982  0.4  0.9 376408 117364 ?       S    13:41   0:00 /usr/sbin/apache2 -k start
www-data  6983  0.4  0.9 376408 117364 ?       S    13:41   0:00 /usr/sbin/apache2 -k start
www-data  6984  0.5  0.9 376408 117364 ?       S    13:41   0:00 /usr/sbin/apache2 -k start
www-data  6985  0.0  0.7 315044 87100 ?        S    13:41   0:00 /usr/sbin/apache2 -k start
www-data  6988  0.0  0.7 315044 87100 ?        S    13:41   0:00 /usr/sbin/apache2 -k start
root      7048  0.0  0.0  14224   948 pts/0    S+   13:42   0:00 grep apache2

Может, процесс почему-то завис. Вы пробовали kill -9 и PID идентификатора процесса apache2?

В качестве альтернативы вы можете запустить пару раз эту команду:

pgrep apache2 | xargs kill -9

Затем попробуйте запустить его с помощью /etc/init.d/apache2 start и посмотрите, запустится ли он. После этого вы можете взглянуть на свои журналы apache и посмотреть, сможете ли вы найти какую-либо полезную информацию, которую можно было бы использовать для дальнейшего исследования ...

Я наткнулся на ту же проблему, и шаги, которые вы предприняли, мне тоже не помогли. Что сработало для меня, так это убить процесс, отвечающий за кеширование, после того, как я остановил сервер:

sudo service apache2 stop
ps aux | grep apache

www-data  1671  0.0  0.0  19904   172 ?        Ss   10:55   0:00 
/usr/bin/htcacheclean -d 120 -p /var/cache/apache2/mod_cache_disk -l 300M -n

kill 1671

Затем после очистки кеша браузера выполнение sudo service apache2 stop/start работал как положено.

Это сработало для меня:

sudo kill -15 processID 

где processID - это верхний родительский элемент (скорее всего, наименьшее число) в списке процессов, возобновляемом:

ps -ef | grep apache2