Estoy ejecutando nginx en Windows Server 2008 R2 (x64) como un servicio de Windows. Estoy usando Windows Service Wrapper para eso. (En realidad, he seguido este tutorial: http://mercurial.selenic.com/wiki/HgServeNginxWindows ).
El servicio funciona bien. Sin embargo, el servidor no procesa las señales (por ejemplo, detener / recargar).
Esto significa que si detengo el servicio, nginx no se detiene. (Tengo que matarlo).
Y cuando quiero volver a cargar la configuración desde la línea de comandos:
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
Produce:
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
Estoy ejecutando el comando como administrador y el servicio se ejecuta bajo el usuario del SERVICIO DE RED.
¿Alguna pista o problemas similares?
windows
nginx
windows-service
TENNESSE.
fuente
fuente
Respuestas:
Debe ejecutar
reload
desde la misma cuenta que la ejecución del servicio. Por ejemplo, si ejecuta su nginx como SYSTEM, puede usar lapsexec
herramienta:PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
fuente
Ejecuto mi servicio nginx en SISTEMA LOCAL y uso la siguiente configuración xml:
Estoy usando Windows Service Wrapper 1.18 y esta configuración funciona para mí. Los procesos de Nginx deberían detenerse con gracia ahora. Buena suerte.
fuente
Un par de cosas para probar:
¿Por qué ejecutarse en la cuenta de SERVICIO DE RED? Pruebe con el valor predeterminado para todos los servicios, LocalSystem.
Siga este tutorial para probar otro contenedor, AlwaysUp . Si funciona, entonces puede estar enfrentando un problema con Windows Service Wrapper.
Por favor, informe lo que encuentre.
fuente
para que funcione para mí en Windows 10 con nginx 1.9.15 tuve que agregar
en los argumentos de parada
fuente
cmd
como administrador .cd
a la carpeta donde se encuentra nginx y luego ejecute los comandos:cmd (como administrador)
fuente