O Apache não inicia, já está executando, mas não está usando o arquivo pid?

1

Sempre que tento iniciar / reiniciar meu apache2 service usando systemctl , recebo um erro sobre isso, mas não estou executando meu pid file .

● 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'.

executando ps aux | grep apache2 mostra que algo já está em execução, mas não posso matá-los. Assim que eu os mato, eles reaparecem sob um pid diferente.

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

O log do apache em /var/log/apache2/errors.log está vazio.

anexando ao primeiro pid usando sudo strace -p 8931 , eu recebo:

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

repetido várias vezes

executando sudo /usr/sbin/apachectl -k start apresenta o seguinte erro. Eu não tenho certeza do que está usando a porta 80 embora.

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.

depois de executar sudo netstat -lnpt , descobri que esqueci o contêiner do Docker em execução ...

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp6       0      0 :::80                   :::*                    LISTEN      8856/docker-proxy
...
    
por waspinator 10.01.2017 / 03:50

2 respostas

1

Active: failed (Result: exit-code) since Mon 2017-01-09 21:42:38 EST; 16s ago

isso significa que o serviço não foi iniciado corretamente, tente iniciar manualmente usando "# / apacheHome / bin / apachectl -k start / stop" e check in logs.

    
por 10.01.2017 / 08:57
1

Executar

sudo netstat -tulpn | grep :80

e você terá uma saída como

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

Observe o PID do processo ouvindo a porta, no meu caso foi 1066. Então corra

sudo kill -9 1066

Lembre-se de alterar o pid com o que está escutando a porta. Pode não ser o mesmo que 1066

Isso funcionou para mim.

    
por 10.06.2017 / 10:54