Ошибка перезапуска Apache

Ошибка перезапуска Apache

На моем сервере была высокая нагрузка, и я остановил Apache2, пока нагрузка не снизилась, используя killall -9 apache2. При запуске Apache2 я получил ошибку:

*# /etc/init.d/apache2 restart * Перезапуск веб-сервера apache2 httpd (pid 4457?) не запущен (98) Адрес уже используется: make_sock: не удалось привязаться к адресу 0.0.0.0:80 нет доступных прослушивающих сокетов, завершение работы Невозможно открыть журналы*

Затем я выполнил lsof | grep "*.www" и завершил процесс, используя порт 80.

У меня вопрос: как процесс может продолжать использовать порт 80 даже после того, как я выполнил команду kill all?

решение1

http://httpd.apache.org/docs/2.2/stopping.html

Чтобы остановить или перезапустить Apache, необходимо отправить сигнал запущенным процессам httpd. Есть два способа отправки сигналов. Во-первых, можно использовать команду unix kill для прямой отправки сигналов процессам.Вы заметите, что в вашей системе запущено много исполняемых файлов httpd, но вам не следует отправлять сигналы ни одному из них, кроме родительского., чей pid находится в PidFile. То есть вам никогда не придется отправлять сигналы никакому процессу, кроме родительского. Есть четыре сигнала, которые вы можете отправить родительскому процессу: TERM, USR1, HUP и WINCH, которые будут описаны через минуту.

Чтобы послать сигнал родителю, необходимо подать команду, например:

  kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

Мой акцент.

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