Windows – nginx stop/reload on windows failed for Access is denied

nginxwindowswindows-service

I am running nginx on Windows Server 2008 R2 (x64) as a windows service. I am using Windows Service Wrapper for that. (Actually, I have followed this tutorial: http://mercurial.selenic.com/wiki/HgServeNginxWindows.)

The service is running ok. However, the server does not process the signals (e.g. stop / reload).

This means if I stop the service, nginx is not stopped. (I have to kill it.)

And when I want to reload the configuration from command line:

C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload

It outputs:

nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)

I am running the command as administrator and the service is running under NETWORK SERVICE user.

Any hints or similar issues?

Best Answer

You must run reload from the same account as service run. For example, if you run your nginx as SYSTEM, then you can use psexec tool:

PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload