Невозможно остановить процессы Apache

Невозможно остановить процессы Apache

Обновлять:Отвечая на комментарий:

проверьте процессы apache:

$ ps a | grep apache 3
grep: 3: No such file or directory
$ ps a | grep apache
 4514 pts/0    S+     0:00 grep --color=auto apache
$ ps a | grep apache2
 4516 pts/0    S+     0:00 grep --color=auto apache2

проверка журнала ошибок apache

$ tail /var/log/apache2/error.log
[Sun Aug 07 03:14:19 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 03:13:58 2011] [notice] Graceful restart requested, doing restart
[Mon Aug 08 03:14:00 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations
[Mon Aug 08 09:03:16 2011] [notice] caught SIGTERM, shutting down
[Mon Aug 08 09:05:47 2011] [notice] Apache/2.2.16 (Ubuntu) PHP/5.3.3-1ubuntu9.5 with Suhosin-Patch configured -- resuming normal operations

Оригинал:Я остановил Apache, но почему число запущенных процессов по-прежнему осталось прежним?

$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2
$ /etc/init.d/apache2 stop
 * Stopping web server apache2                            [ OK ] 
$ ps -A | grep apache
 1663 ?        00:00:00 apache2
 1667 ?        00:00:00 apache2
 1668 ?        00:00:00 apache2
 1669 ?        00:00:00 apache2
 1670 ?        00:00:00 apache2
 1671 ?        00:00:00 apache2

Спасибо!

решение1

Это может иногда происходить, когда Apache отказывается останавливаться должным образом илиЗомби-процессы. В первом случае вы можете завершить все запущенные процессы с помощью sudo killall -9 apache2; однако, во втором случае вам просто нужно будет дождаться, пока они не закончатся. В случае, если Apache не хочет останавливаться должным образом, вам действительно нужно будет выяснить, что происходит. Однако выяснить, что именно происходит, может быть сложно.

Интерактивный straceидентификатор процесса может дать подсказку о том, какой сайт(ы) работает и вызывает проблемы. Из вышесказанного ps -Aвы можете проверить первый процесс с помощью

strace -p 1663

Это будет присоединено к трассировке стека запущенных процессов, предоставляя живой вывод того, что происходит. В любое время вы можете Ctrl+C

Дополнительным ресурсом является основной журнал ошибок Apache, который можно найти в /var/log/apache2/error.logВы захотите получить приличный кусок журнала и просмотреть его для получения подробностей. Если проблема является постоянной проблемой при запуске

tail -f /var/log/apache2/error.log

Это похоже на то, straceчто будет работать в реальном времени. Для последних N строк замените -fна -#, где #это положительное число, например 50, 100, 282 и т. д.

решение2

Убедитесь, что у вас есть необходимые разрешения для остановки службы.

Если вы запустите:

service apache2 stop

вы не получите никакой ошибки, просто:

* Остановка веб-сервера apache2

Пытаться:

sudo service apache2 stop      

решение3

У меня тоже была такая же проблема, и я попробовал следующее:

sudo apache2ctl stop

остановить обслуживание и

sudo apache2ctl start

чтобы начать его снова.

У меня это работает, любые предложения приветствуются.

решение4

Процессы можно запросить (отправивсигналим) для остановки. killКоманда — это способ сделать это. Если вы знаете идентификатор процесса (PID), его можно запросить, выполнив команду ниже в терминале:

kill PID_OF_YOUR_PROCESS

В приведенном выше примере PID по умолчанию отправляет сигнал TERM (код 15). Вы можете посмотреть коды сигналов встраница руководства kill( man kill).

Когда программа игнорирует сигнал TERM, отправленный им, все еще возможно применить немного больше давления, отправив сигнал KILL (код 9). Этот сигнал используется в качестве крайней меры, поскольку процесс может не сохранить несохраненные данные.

Указание a -SIGNAL_CODEв качестве первого параметра перед идентификатором процесса отправит процессу определенный сигнал. Другая полезная функция команды killзаключается в том, что вы можете указать больше PID, как в следующем примере:

kill -9 PID1 PID2 PID3 PID4

Попробуйте завершить процессы Apache с помощью kill -9строки. Они должны остановиться, если только что-то не помешает им это сделать.

Связанный контент