Система Orphus
[]

четверг, 26 апреля 2012 г.

httpd: (98)Address already in use: make_sock: could not bind to address

Сегодня при попытке перезапустить апач на одном из серверов на CentOS 6.2, получил сообщение:
# /etc/init.d/httpd restart
Останавливается httpd:                                  [СБОЙ ]
Запускается httpd: (98)Address already in use: make_sock: could not bind to address 1.1.1.1:443
no listening sockets available, shutting down
Unable to open logs
                                                        [СБОЙ ]

Обычно такое возникает, когда какой-то другой процесс занял нужный порт. Но у меня проблема была в другом.


Для начала я убил апача (команда stop выдавала точно такую же ошибку) и убедился, что 443 порт свободен:
# pkill -9 httpd
# pgrep -fl httpd
# lsof -i :443
После убийства апача, он нормально стартовал. Но stop или restart все равно не работали.

После чего перерыл конфиги апача, но не нашел к чему придраться. Так же сам апач говорил, что с его конфигами все ОК:
# /etc/init.d/httpd configtest
Syntax OK
или
# apachectl configtest
Syntax OK

Далее решил на всякий случай заглянуть в /etc/init.d/httpd. Команда stop там реализуется таким кодом:
# ...
. /etc/rc.d/init.d/functions
# ...
stop() {
        echo -n $"Stopping $prog: "
        killproc -p ${pidfile} -d ${STOP_TIMEOUT} $httpd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
Функция killproc находится в файле /etc/rc.d/init.d/functions, который "инклюдится" в /etc/init.d/httpd. Я и подумал: "А дай-ка попробую killproc ручками вызвать":
# bash -c '. /etc/rc.d/init.d/functions; killproc -p /var/run/httpd.pid -d 10 httpd'
#                                             [  OK  ]
Опа, пишет "[ OK ]" :)

Проверяю:
# /etc/init.d/httpd start
Запускается httpd:                                      [  OK  ]

# /etc/init.d/httpd stop
Останавливается httpd:                                  [  OK  ]

# /etc/init.d/httpd restart
Останавливается httpd:                                  [  OK  ]
Запускается httpd:                                      [  OK  ]
Все работает! Урааа!!! :)

PS: Но я так и не понял, что это было и из-за чего %)





Информация с сайта http://blog.angel2s2.ru/.

Похожие статьи

6 коммент.:

adminos комментирует... вторник, 15 мая 2012 г., 23:41:00 GMT+3

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

ваше решение не помогло , в /etc/init.d/httpd остановка командой проходит:
/usr/local/apache/bin/httpd -k stop

у меня выдает:
#/usr/local/apache/bin/httpd -e debug -k stop
[Tue May 15 23:36:43 2012] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

очень странно, уже кажется все перерыл, не ясно чего не хватает. Случилось после пересборки с помощь easyapache(Cpanel) apache + mpm-itk

все работает, вот только не ребутится правильно и не стопается

adminos комментирует... вторник, 15 мая 2012 г., 23:44:00 GMT+3

и поставьте модуль какой-то чтобы можно было подписаться на новые комментарии на странице ;-)

Roman Shagrov комментирует... среда, 16 мая 2012 г., 8:31:00 GMT+3

А какой у вас дистрибутив?
Можете залить, куда-нибудь свой /etc/init.d/httpd?


Подписать на комментарии можно:
1. Сразу под полем ввода комментария есть ссылка "Подписаться по электронной почте"
2. Внизу страницы есть ссылка для RSS: "Подписаться на: Комментарии к сообщению (Atom)"

Roman Shagrov комментирует... среда, 16 мая 2012 г., 8:34:00 GMT+3

Кстати, если у вас несколько интерфейсов, попробуйте в конфиге апаче заменить
Listen *:80
на конкретный интерфейс, например
Listen 1.1.1.1:80

Анонимный комментирует... среда, 7 августа 2013 г., 12:18:00 GMT+3

Така же байда после установки mpm-itk

wmast комментирует... воскресенье, 7 июня 2015 г., 23:18:00 GMT+2

То же самое случилось после настройки SMTP-AUTH с TLS на Exim4, Ubuntu Server.
Автору спасибо, апач заработал!

Отправить комментарий