Não é possível reiniciar o HTTPD no CentOS 7

Não é possível reiniciar o HTTPD no CentOS 7

Tenho uma instância executando o CentOS 7. E estou tendo dificuldade quando/se reiniciar httpd.

Minha configuração está funcionando bem, meus sites são veiculados como eu queria; além disso, quando executo o comando sudo apachectl configtest, eu volto Syntax OK.

Mas quando eu reinicio httpd, ele não cumpre a seguinte mensagem de status:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2018-08-28 12:30:26 CEST; 6s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 9569 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 9568 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 9568 (code=exited, status=1/FAILURE)

Aug 28 12:30:26 vps httpd[9568]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
Aug 28 12:30:26 vps httpd[9568]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Aug 28 12:30:26 vps httpd[9568]: no listening sockets available, shutting down
Aug 28 12:30:26 vps httpd[9568]: AH00015: Unable to open logs
Aug 28 12:30:26 vps systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Aug 28 12:30:26 vps kill[9569]: kill: cannot find process ""
Aug 28 12:30:26 vps systemd[1]: httpd.service: control process exited, code=exited status=1
Aug 28 12:30:26 vps systemd[1]: Failed to start The Apache HTTP Server.
Aug 28 12:30:26 vps systemd[1]: Unit httpd.service entered failed state.
Aug 28 12:30:26 vps systemd[1]: httpd.service failed.

Entendo que algo mais está funcionando no lugar de httpdquando eu o reinicio. Portanto eu executo netstat -tulpn | grep :80.

tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      2560/nginx: master  
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2560/nginx: master  
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      1434/unicorn master 
tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      1307/sidekiq 5.1.3 

O resultado acima meio que me confunde, pois não tenho Nginxinstalado no meu sistema e which nginxtambém não retorna nada.

No entanto, quando reinicio minha instância, httpdfunciona conforme o esperado.

O que devo fazer para resolver meu problema?

Responder1

Ok, mistério resolvido; obrigado a Gerald Schneider. (embora não fosse um trojan, felizmente)

A execução ps -Af | grep $pidme deu mais informações e destacou o GitLab para minha atenção. (Eu sabia que havia algo suspeito nisso, mas não consegui chegar à causa raiz do problema e identificá-lo corretamente)

httpdestava em conflito com gitlab. Depois que executei sudo gitlab-ctl stope tentei reiniciar httpd, tudo funcionou normalmente.

Também,essa questãofornece mais informações sobre o dilema Apache - GitLab - Nginx. (e a primeira menção é que Apache e GitLab contradizem a porta 80:])

Responder2

Você pode usar systemctlo comando para identificar o serviço em execução.

No seu casosystemctl list-unit-files | grep nginx

Exemplo

systemctl list-unit-files | grep nginx
nginx-nr-agent.service                 generated
nginx.service                          enabled  

Depois disso, você pode encontrar mais informações sobre o serviço em execução com o comandosystemctl status servicename

Exemplo

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-08-28 15:03:08 EEST; 47min ago
     Docs: man:nginx(8)
  Process: 1455 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1460 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1458 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1462 (nginx)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/nginx.service
           ├─1462 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─1463 nginx: worker process

Provavelmente ExecStop e ExecStart irão ajudá-lo a identificar onde o binário está localizado.

Responder3

master é usado pelo postfix em servidores Linux. Tente parar o postfix com o seguinte comando

/sbin/service postfix stop

Além disso, se o postfix não for necessário para sua configuração, você pode impedir que ele reinicie quando o servidor for reinicializado, pelo seguinte comando

chkconfig postfix off

Também pelo erro fica claro que você está tentando iniciar o httpd em 0.0.0.0:80. Tente usar um endereço IP no arquivo httpd.conf para obter erros mais específicos.

Agora tente parar e reiniciar o serviço httpd.

informação relacionada