Mientras realizaba unas tareas de reconfiguración de un servidor Web Apache, me topé con los siguientes errores al momento de reiniciar el servicio:
Address already in use: make_sock: could not bind to address
Este error indica que el socket está en uso, es decir, no se puede ligar al puerto 80 en la dirección especificada porque está ocupado por otro proceso.
Unable to open logs Action 'start' failed.
Y este error indica que no puede abrir los archivos de log, por la misma razón.
Esta situación se debe a que en el momento de detener el servicio (service apache2 stop/restart
), el proceso correspondiente al servidor Apache no fue terminado correctamente:
root@debian:~# service apache2 start [....] Starting web server: apache2(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs Action 'start' failed. The Apache error log may have more information. failed!
A fin de resolver este inconveniente, es necesario identificar qué procesos de Apache quedaron en ejecución:
root@debian:~# ps ax | grep apache 14228 ? S 47:43 /usr/sbin/apache2 -k start 14233 ? S 46:40 /usr/sbin/apache2 -k start 24696 pts/0 S+ 0:00 grep apache
Para luego terminarlos de manera forzada (matarlos) enviando la señal SIGKILL
:
root@debian:~# kill -9 14228 root@debian:~# kill -9 14233
Finalmente, iniciar Apache de manera correcta:
root@debian:~# service apache2 start [ ok ] Starting web server: apache2.