На днях столкнулся с такой вот проблемой.
Стоит: Red Hat Linux release 9 (Shrike) + Apache 2.0.40. Есть скрипт на PHP, который с помощью exec() запускает сишную прогу myprogram. myprogram делает fork() и работает как демон. Открывает при работе только одно исходящее соединение, порты не слушает.
Запускаю через браузер свой PHP-скрипт. Он запускает сишную программу. Все ok, все пашет.
Затем мне понадобилось перезапустить Web-сервер. Делаю: service httpd stop. Но после того, как я обратно сделал service httpd start, получил ошибку:
make_sock: could not bind to address 0.0.0.0:443
no listening sockets available, shutting down
Хм, 5 минут назад все ж отлично работало. Делаю netstat -nlp и вижу такую картину:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 14656/myprogram
...
Т.е. myprogram с правами apache умудрилась занять 443-й порт, который занимал Web-сервер! Причем, если запустить две копии myprogram, она займет порты 80 и 443. После kill'а для myprogram все заработало.
Как можно побороть это явление? И как оно вообще объясняется с научной точки зрения? Спасибо.
Ответ на:
комментарий
от execve
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Munin disable ipv6 (2015)
- Форум Ubuntu, демоны в ipv6 (2008)
- Форум Отгадайте загадку (2008)
- Форум непонятные listen port'ы (2020)
- Форум port 443 is NOT enabled in apache/http (2018)
- Форум Где PID в netstat -p ? (2007)
- Форум Помогите разобраться с подключением по telnet (2021)
- Форум Смена адреса в Local Address (2014)
- Форум Запретить X-ам слушать 6000 tcp (2004)
- Форум Докеры и порты (2021)