Tenemos dos Windows Server , uno de cada 2012 R2 y el otro en 2008 R2 que utiliza Apache HTTP Server ( httpd
) 2.4 de proxy / modo de proxy inverso (el uso de ProxyPass
, ProxyPassReverse
y la configuración de máquinas virtuales). Ambos servidores usan la compilación binaria Apache 2.4.27 x64 de Apache Haus.
Tenemos algunos scripts de respaldo ejecutándose en ambos servidores. Detienen todos los servicios (incluido Apache), luego hacen la copia de seguridad y reinician todos los servicios nuevamente.
Estas secuencias de comandos funcionan bien desde hace varios años (casi 4 años). Pero a partir de July 12, 2018
, el comportamiento ahora es extraño. Los scripts de respaldo están haciendo su trabajo, deteniendo todos los servicios, haciendo el respaldo pero ahora, todos los servicios se reinician excepto Apache.
Después de investigar, descubrí que el servicio Apache 2.4.27 no se puede detener. Al usar la consola de Servicios e intentar detener manualmente el servicio, la consola muestra "Deteniendo" y no sucede nada.
Así que verifiqué los procesos en ejecución y vi que httpd.exe
se está ejecutando un proceso. Traté de matar ese proceso pero sin suerte.
Entonces, intenté:
taskkill /im "httpd.exe" /f /t
Y la salida es:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Así que probé para matar el proceso con pskill
Sysinternals:
pskill -t 560
Y la salida es:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Pero esto es falso, ya que el httpd
proceso siempre se está ejecutando.
Así que actualicé Apache de 2.4.27 a 2.4.34, pero el problema persiste. Lo único que debe hacer para desbloquear la situación es reiniciar todo el servidor.
Revisé las actualizaciones instaladas, y algunas de ellas se instalaron el July 11, 2018
día anterior:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Así que supongo que el problema es de una de estas actualizaciones. Entonces, antes de desinstalarlos a todos, ¿hay alguien que tenga el mismo problema que yo, quiero decir que Apache 2.4 se vuelve imposible de matar y no se puede detener en Windows Server?
El gran problema es que si ese httpd
proceso no se puede eliminar, Apache no se puede reiniciar ya que el puerto 80 ya está vinculado.