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

Apache поймал SIGTERM, отключился и порт 80 использовался процессами perl

Apache отключился случайным образом и не смог перезапустить. Порт 80 используется процессами Perl. Когда я убиваю процессы, использующие порт 80, apache может снова перезапуститься.

журнал и результаты:

хвост -50 / var / log / httpd / error_log

[Sat Jan 07 00:11:01 2012] [notice] caught SIGTERM, shutting down

ns1: / proc / 15852 # fuser -n tcp 80

80/tcp:               6072 15849 15852

ns1: / proc / 15852 # ls -l

total 0
-r-------- 1 apache apache 0 2012-01-07 00:30 auxv
-r--r--r-- 1 apache apache 0 2012-01-07 00:24 cmdline
-rw-r--r-- 1 apache apache 0 2012-01-07 00:30 coredump_filter
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 cpuset
lrwxrwxrwx 1 apache apache 0 2012-01-07 00:37 cwd -> /var/www/html/phpMyAdmin-2.11.5-all-languages
-r-------- 1 apache apache 0 2012-01-07 00:24 environ
lrwxrwxrwx 1 apache apache 0 2012-01-07 00:37 exe -> /usr/bin/perl
dr-x------ 2 apache apache 0 2012-01-07 00:37 fd
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 io
-r-------- 1 apache apache 0 2012-01-07 00:30 limits
-rw-r--r-- 1 apache apache 0 2012-01-07 00:30 loginuid
-r--r--r-- 1 apache apache 0 2012-01-07 00:37 maps
-rw------- 1 apache apache 0 2012-01-07 00:30 mem
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 mounts
-r-------- 1 apache apache 0 2012-01-07 00:30 mountstats
-rw-r--r-- 1 apache apache 0 2012-01-07 00:30 oom_adj
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 oom_score
lrwxrwxrwx 1 apache apache 0 2012-01-07 00:37 root -> /
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 schedstat
-r-------- 1 apache apache 0 2012-01-07 00:30 smaps
-r--r--r-- 1 apache apache 0 2012-01-07 00:24 stat
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 statm
-r--r--r-- 1 apache apache 0 2012-01-07 00:24 status
dr-xr-xr-x 3 apache apache 0 2012-01-07 00:30 task
-r--r--r-- 1 apache apache 0 2012-01-07 00:30 wchan

ns1: / proc / 15852 # /etc/init.d/httpd перезапуск

Stopping httpd:
Starting httpd: Warning: DocumentRoot [/xxx/public_html] does not exist
Warning: DocumentRoot [/xxx/private_html] does not exist
[Sat Jan 07 00:48:37 2012] [warn] NameVirtualHost xx.xx.xx.xx:80 has no VirtualHosts
[Sat Jan 07 00:48:37 2012] [warn] NameVirtualHost xx.xx.xx.xx:443 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

Случайно, я имею в виду, неопределенное время, иногда ночью, когда на сервере очень низкий трафик. Иногда бывает больше трафика.

Я не знаю, что другой процесс использует порт 80 или apache все еще использует порт 80. Если другой процесс использует порт 80, я хочу знать, какие процессы и почему они используют. И как этого избежать.

Под вопросом есть результат процесса ls каталога proc (pid номер 15852). Этот процесс использует порт 80. Возможно, это поможет распознать проблему.

В журнал ошибок http об этой проблеме есть только строка:

[Sat Jan 07 00:11:01 2012] [notice] caught SIGTERM, shutting down

---- Новое редактирование, проблема снова возникла. Я пробую команду netstat и в этом случае идентификатор pid 7574 ----

netstat -tpnl | grep ": 80" результат:

ns1:~# netstat -tpnl | grep ":80"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7574/apache3 -k sta 

ns1:/proc/7574# more cmdline
/usr/sbin/apache3 -k start
ns1:/proc/7574# ls /usr/sbin/apache3
ls: cannot access /usr/sbin/apache3: No such file or directory