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 httpd
quando 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 Nginx
instalado no meu sistema e which nginx
também não retorna nada.
No entanto, quando reinicio minha instância, httpd
funciona 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 $pid
me 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)
httpd
estava em conflito com gitlab
. Depois que executei sudo gitlab-ctl stop
e 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 systemctl
o 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.