Apache не запускается, он уже запущен, но не обрабатывает файл pid?

Всякий раз, когда я пытаюсь запустить / перезапустить службу apache2 с помощью systemctl , я получаю сообщение об ошибке, что он уже запущен, но не обрабатывает мой файл pid .

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: failed (Result: exit-code) since Mon 2017-01-09 21:42:38 EST; 16s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 18354 ExecStop=/etc/init.d/apache2 stop (code=exited, status=1/FAILURE)
  Process: 18337 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

Jan 09 21:42:38 username apache2[18337]: Action 'start' failed.
Jan 09 21:42:38 username apache2[18337]: The Apache error log may have more information.
Jan 09 21:42:38 username apache2[18337]:  *
Jan 09 21:42:38 username apache2[18354]:  * Stopping Apache httpd web server apache2
Jan 09 21:42:38 username apache2[18354]:  *
Jan 09 21:42:38 username apache2[18354]:  * There are processes named 'apache2' running which do not match your pid file which are left untouched in the name of safety, Please review the situation by hand.
Jan 09 21:42:38 username systemd[1]: apache2.service: Control process exited, code=exited status=1
Jan 09 21:42:38 username systemd[1]: Failed to start LSB: Apache2 web server.
Jan 09 21:42:38 username systemd[1]: apache2.service: Unit entered failed state.
Jan 09 21:42:38 username systemd[1]: apache2.service: Failed with result 'exit-code'.

работает ps aux | grep apache2 показывает, что что-то уже запущено, но я не могу их убить. Как только я их убиваю, они снова появляются под другим pid.

root       8931  0.0  0.2 227232 23632 ?        Ss   21:30   0:00 apache2 -DFOREGROUND
username   9193  0.0  0.1 227264  9056 ?        S    21:30   0:00 apache2 -DFOREGROUND
username   9194  0.0  0.1 227264  9056 ?        S    21:30   0:00 apache2 -DFOREGROUND
username   9195  0.0  0.1 227264  9056 ?        S    21:30   0:00 apache2 -DFOREGROUND
username   9196  0.0  0.1 227264  9056 ?        S    21:30   0:00 apache2 -DFOREGROUND
username   9197  0.0  0.1 227264  9056 ?        S    21:30   0:00 apache2 -DFOREGROUND

Журнал apache в /var/log/apache2/errors.log пуст.

прикрепляется к первому pid используя sudo strace -p 8931 , я получаю:

strace: Process 8931 attached
select(0, NULL, NULL, NULL, {0, 58750}) = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7ffc2296e9bc, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}^Cstrace: Process 8931 detached

повторяется снова и снова

запуск sudo / usr / sbin / apachectl -k start дает следующую ошибку. Я не уверен, что использует порт 80.

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action '-k start' failed.
The Apache error log may have more information.

после запуска sudo netstat -lnpt я обнаружил, что забыл о контейнере докеров, который я запускал ...

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp6       0      0 :::80                   :::*                    LISTEN      8856/docker-proxy
...
1
задан 10 January 2017 в 23:55
2 ответа

نشط: فشل (النتيجة: كود الخروج) منذ Mon 2017-01-09 21:42:38 EST؛ قبل 16 ثانية

هذا يعني أن الخدمة لم تبدأ بشكل صحيح ، حاول بدء الاستخدام يدويًا "# / apacheHome / bin / apachectl -k start / stop" وتسجيل الدخول.

1
ответ дан 3 December 2019 в 20:30

Запустите

sudo netstat -tulpn | grep :80

, и вы получите что-то вроде

tcp     0      0 0.0.0.0:80        0.0.0.0:*      LISTEN      1066/lighttpd

. Обратите внимание на PID процесса, слушающего порт, в моем случае это было 1066. Затем запустите

sudo kill -9 1066

Не забудьте изменить pid с тем, который слушает порт. Возможно, это не то же самое, что и 1066

Это сработало для меня.

1
ответ дан 3 December 2019 в 20:30

Теги

Похожие вопросы