No se puede reiniciar HTTPD en CentOS 7

No se puede reiniciar HTTPD en CentOS 7

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 httpdcuando 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 Nginxinstalado en mi sistema y which nginxtampoco devuelve nada.

Sin embargo, cuando reinicio mi instancia, httpdfunciona 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 $pidme 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).

httpdestaba en conflicto con gitlab. Una vez que ejecuté sudo gitlab-ctl stopy 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 systemctlel 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.

información relacionada