borrame.com - Colección particular de recortes de código y documentación para programación web

Lo más fresco

  1. LPAD en SQL Server Nuevo
  2. Eliminar todos los objetos en SQL Server Modificado
  3. Dominio principal Nuevo
  4. Eliminar formato en Excel Nuevo

Sugerencias del chef

Lo más visitado

  1. Dar formato a un número
  2. Campo autonumérico
  3. Fecha y hora
  4. Cookies
  5. Convertir IP entre cadena y número

Reiniciar Apache con cuidado (graceful restart)

Este humilde script es una imitación (barata, admito) del comando service httpd graceful que nos encontramos en Red Hat y otros Linuxes: reinicia el servicio de Apache si y sólo si no existe ningún error de configuración. Es lo mismo que ejecutar a mano el icono Test Configuration y después (si todo fue bien) reiniciar Apache con el icono Restart o (si todo fue mal) no reiniciarlo.

@echo off
rem
rem Hace un "graceful restart" de Apache instalado como servicio de Windows - v2008-02-28
rem


rem Establecemos el juego de caracteres ISO-8859-1 (Latin 1)
chcp 28591 > NUL


rem Ejecutable de Apache 2 (ruta completa si la carpeta no está en %PATH%)
set APACHE=C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe

rem Nombre del servicio
set SERVICIO=Apache2.2


echo ==========================================================================
echo Verificando la configuración de Apache...
echo.

"%APACHE%" -t

echo.

if %ERRORLEVEL% NEQ 0 (
    goto cfg_err
) else (
    goto cfg_ok
)



:cfg_err
echo Se han encontrado errores, no se puede continuar.
goto fin

:cfg_ok
echo La configuración es correcta.
echo ==========================================================================
echo Reiniciando el servicio "%SERVICIO%"...
echo.

net stop "%SERVICIO%" 2> NUL
net start "%SERVICIO%"

if %ERRORLEVEL% NEQ 0 (
    goto reinicio_err
) else (
    goto reinicio_ok
)

:reinicio_err
echo Ha fallado el reinicio del servicio.
goto fin

:reinicio_ok
echo El servicio ha sido reiniciado con éxito.
goto fin


:fin
echo ==========================================================================
echo.
echo.
pause

Hay que modificar las líneas set APACHE y set SERVICIO si no son las correctas para el equipo. El nombre del servicio se puede buscar con regedit en la clave de registro HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services pero suele ser más fácil ponerse a adivinar.

Recordad que en Windows Vista hay que ejecutarlo como administrador: botón derecho y Ejecutar como administrador o, más cómodo, creamos un acceso directo y lo cambiamos para siempre en las propiedades del mismo.

Historial

v2008-02-28
Fijamos el juego de caracteres para evitar complicaciones con los acentos.
Separamos los dos pasos del reinicio para poder usar el script aun con el servicio inicialmente apagado.
v2008-02-05
Primera versión.

Esta página ha sido impresa el miércoles 10 de marzo de 2010 (22:19:19 +0100) desde http://borrame.com/recortes/apache/graceful-restart.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2010 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com