Windows için nginx durdur / yeniden yükle, Erişim reddedildi


13

Windows Server 2008 R2 (x64) üzerinde Windows hizmeti olarak nginx çalıştırıyorum. Bunun için Windows Service Wrapper kullanıyorum. (Aslında, bu eğitimi izledim: http://mercurial.selenic.com/wiki/HgServeNginxWindows .)

Hizmet Tamam çalışıyor. Ancak, sunucu sinyalleri işlemez (örn. Durdur / yeniden yükle).

Bu, hizmeti durdurursam nginx durdurulmaz demektir. (Onu öldürmem gerekiyor.)

Ve yapılandırmayı komut satırından yeniden yüklemek istediğimde:

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

Çıktıları:

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

Komutu yönetici olarak çalıştırıyorum ve hizmet AĞ HİZMETİ kullanıcısı altında çalışıyor.

Herhangi bir ipucu ya da benzer sorun var mı?


ProcMon izi, sorunun tanımlanmasına yardımcı olmalıdır. Process Monitor uygulamasını indirebilir , çalıştırabilir, izlemeyi başlatabilir, daha önce yaptığınız adımları tekrarlayabilirsiniz (böylece Erişim Reddedildi hatasını yeniden üretebilirsiniz ), izlemeyi durdurun, PML dosyası ( Tüm Olaylar ) olarak kaydedin ve dosyayı paylaşın Bizimle, çözüm sağlayabiliriz.
Tomas Dabasinskas

Yanıtlar:


2

Sen çalıştırmalısınız reloadhizmet vadede aynı hesaptan. Örneğin, nginx'inizi SYSTEM olarak çalıştırırsanız, psexecaracı kullanabilirsiniz :

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


1

Nginx hizmetimi LOCAL SYSTEM altında çalıştırıyorum ve aşağıdaki xml yapılandırmasını kullanıyorum:

<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 kullanıyorum ve bu yapılandırma benim için çalışıyor. Nginx süreçleri şimdi nazikçe durdurulmalıdır. İyi şanslar.


bu xml nerede bulunur? Bağlam önemlidir!
Roel


0

nginx 1.9.15 ile Windows 10 benim için çalışması için eklemek zorunda kaldı

-p c:\nginx 

stop argümanlarında

<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>

0
  1. Yöneticicmd olarak aç .
  2. Sonra cdnginx'in bulunduğu klasöre gidin ve komutları çalıştırın:

cmd (Yönetici olarak)

cd E:\apath\nginx\nginx.exe
nginx -s reload
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.