प्रवेश के लिए असफल खिड़कियों पर nginx stop / reload से इनकार किया जाता है


13

मैं Windows Server 2008 R2 (x64) पर Windows सेवा के रूप में nginx चला रहा हूं। मैं उस के लिए Windows सेवा आवरण का उपयोग कर रहा हूं। (वास्तव में, मैंने इस ट्यूटोरियल का अनुसरण किया है: http://mercurial.selenic.com/wiki/HgServeNginxx Windows ।)

सेवा ठीक चल रही है। हालाँकि, सर्वर संकेतों (जैसे स्टॉप / रीलोड) को संसाधित नहीं करता है।

इसका मतलब है कि अगर मैं सेवा बंद कर देता हूं, तो नगनेक्स बंद नहीं होता है। (मुझे इसे मारना होगा।)

और जब मैं कमांड लाइन से कॉन्फ़िगरेशन को फिर से लोड करना चाहता हूं:

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)

मैं कमांड को प्रशासक के रूप में चला रहा हूं और सेवा नेटवर्क सेवा उपयोगकर्ता के तहत चल रही है।

कोई संकेत या इसी तरह के मुद्दे?


एक ProcMon ट्रेस समस्या की पहचान करने में मदद करने में सक्षम होना चाहिए। यदि आप प्रोसेस मॉनिटर एप्लिकेशन डाउनलोड कर सकते हैं , तो उसे चला सकते हैं, ट्रेसिंग शुरू कर सकते हैं, आपके द्वारा पहले किए गए चरणों को दोहरा सकते हैं (इसलिए आप एक्सेस अस्वीकृत त्रुटि को पुन: उत्पन्न करेंगे ), ट्रेस रोकें, इसे पीएमएल फ़ाइल ( सभी ईवेंट ) के रूप में सहेजें , और फ़ाइल साझा करें हमारे साथ, हम समाधान प्रदान करने में सक्षम हो सकते हैं।
टॉमस डाबासिंस्क 21:16

जवाबों:


2

reloadसर्विस रन के रूप में आपको उसी खाते से चलना चाहिए । उदाहरण के लिए, यदि आप अपना nginx सिस्टम के रूप में चलाते हैं, तो आप psexecटूल का उपयोग कर सकते हैं :

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


1

LOCAL SYSTEM के तहत मैं अपना 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>

मैं विंडोज सर्विस रैपर 1.18 का उपयोग कर रहा हूं और यह कॉन्फ़िगरेशन मेरे लिए काम करता है। Nginx प्रक्रियाओं को अब इनायत से रोका जाना चाहिए। सौभाग्य।


इस xml को कहां खोजें? प्रसंग महत्वपूर्ण है!
रोएल

0

कोशिश करने के लिए कुछ बातें:

  1. नेटवर्क सेवा खाते में क्यों चलाया जाता है? सभी सेवाओं के लिए डिफ़ॉल्ट के साथ प्रयास करें, LocalSystem।

  2. एक और आवरण, हमेशा की कोशिश करने के लिए इस ट्यूटोरियल का पालन करें । अगर यह काम करता है तो आपको विंडोज सर्विस रैपर की समस्या का सामना करना पड़ सकता है।

कृपया रिपोर्ट करें कि आपको क्या मिल रहा है।


0

इसके लिए मेरे लिए विंडोज 10 पर काम करने के लिए nginx 1.9.15 के साथ मुझे जोड़ना पड़ा

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

0
  1. प्रशासक केcmd रूप में खोलें ।
  2. फिर cdउस फ़ोल्डर में जहां nginx स्थित है और फिर कमांड चलाएं:

cmd (प्रशासक के रूप में)

cd E:\apath\nginx\nginx.exe
nginx -s reload
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.