Windows Server 2008 R2(x64)でnginxをWindowsサービスとして実行しています。そのためにWindows Service Wrapperを使用しています。 (実際、私はこのチュートリアルに従っています: http://Mercurial.selenic.com/wiki/HgServeNginxWindows 。)
サービスは正常に実行されています。ただし、サーバーは信号を処理しません(例:停止/再読み込み)。
つまり、サービスを停止しても、nginxは停止しません。 (私はそれを殺さなければなりません。)
そして、コマンドラインから設定をリロードしたいとき:
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
それは出力します:
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
管理者としてコマンドを実行しており、サービスはNETWORK SERVICEユーザーで実行されています。
ヒントや同様の問題はありますか?
サービスの実行と同じアカウントからreload
を実行する必要があります。たとえば、nginxをSYSTEMとして実行する場合、psexec
ツールを使用できます。
PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
ローカルシステムでnginx-serviceを実行し、次のxml構成を使用します。
<service>
<id>nginx-service</id>
<name>nginx-service</name>
<description>nginx-service</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-pc:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>
私はWindows Service Wrapper 1.18を使用していますが、この構成でうまくいきます。 Nginxプロセスは正常に停止する必要があります。幸運を。
cmd
をAdministratorとして開きます。cd
をnginxが配置されているフォルダーに移動し、次のコマンドを実行します。cmd(管理者として)
cd E:\apath\nginx\nginx.exe
nginx -s reload
いくつか試してみる:
NETWORK SERVICEアカウントで実行する理由すべてのサービスのデフォルトであるLocalSystemで試してください。
このチュートリアルに従って、別のラッパー、AlwaysUpを試してください 。機能する場合は、Windows Service Wrapperで問題が発生している可能性があります。
見つけたものを報告してください。
nginx 1.9.15がインストールされたWindows 10で動作するようにするには、追加する必要がありました
-p c:\nginx
停止引数
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<executable>c:\nginx\nginx.exe</executable>
<logpath>c:\nginx\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p</startargument>
<startargument>c:\nginx</startargument>
<stopexecutable>c:\nginx\nginx.exe</stopexecutable>
<stopargument>-p</stopargument>
<stopargument>c:\nginx</stopargument>
<stopargument>-s</stopargument>
<stopargument>stop</stopargument>
</service>