![No se puede reiniciar HTTPD en CentOS 7](https://rvso.com/image/726390/No%20se%20puede%20reiniciar%20HTTPD%20en%20CentOS%207.png)
Tengo una instancia que ejecuta CentOS 7. Y tengo dificultades cuando reinicio httpd
.
Mi configuración funciona bien, mis sitios se transmiten como quería; además, cuando ejecuto el comando sudo apachectl configtest
, vuelvo Syntax OK
.
Pero cuando reinicio httpd
, no cumple con el siguiente mensaje de estado:
● 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.
Entiendo que algo más está funcionando en lugar de httpd
cuando lo reinicio. Por lo tanto ejecuto 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
El resultado anterior me confunde un poco ya que no lo tengo Nginx
instalado en mi sistema y which nginx
tampoco devuelve nada.
Sin embargo, cuando reinicio mi instancia, httpd
funciona según lo previsto.
¿Qué debo hacer para resolver mi problema?
Respuesta1
Ok, misterio resuelto; gracias a Gerald Schneider (aunque afortunadamente no era un troyano)
La ejecución ps -Af | grep $pid
me dio más información y destacó GitLab. (Sabía que había algo sospechoso, pero no pude llegar a la causa raíz del problema e identificarlo correctamente).
httpd
estaba en conflicto con gitlab
. Una vez que ejecuté sudo gitlab-ctl stop
y luego intenté reiniciar httpd
, todo siguió como de costumbre.
También,esta preguntabrinda más información sobre el dilema Apache - GitLab - Nginx (y la primera mención es que Apache y GitLab se contradicen en el puerto 80 :])
Respuesta2
Puede utilizar systemctl
el comando para identificar el servicio en ejecución.
En tu casosystemctl list-unit-files | grep nginx
Ejemplo
systemctl list-unit-files | grep nginx
nginx-nr-agent.service generated
nginx.service enabled
Después de eso, puede encontrar más información sobre el servicio en ejecución con el comandosystemctl status servicename
Ejemplo
● 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
Probablemente ExecStop y ExecStart le ayudarán a identificar dónde se encuentra el binario.
Respuesta3
postfix utiliza master en servidores Linux. Intente detener postfix con el siguiente comando
/sbin/service postfix stop
Además, si no se requiere postfix para su configuración, puede evitar que se reinicie cuando el servidor se reinicie, mediante el siguiente comando
chkconfig postfix off
Además, del error queda claro que está intentando iniciar httpd en 0.0.0.0:80. Intente utilizar una dirección IP en el archivo httpd.conf para obtener un error más específico.
Ahora intente detener y reiniciar el servicio httpd.