2012-06-07 11 views
9

मेरे nginx स्रोत से संकलन किया गया था काम नहीं करता, केवल झंडा कि --conf-path=/etc/nginx/nginx.confएक ubuntu सेवा रोक के रूप में nginx जोड़ें और पुनः लोड

सब कुछ काम करता है देने के लिए और मैं बनाने के लिए this सेवा init.d स्क्रिप्ट का उपयोग करने की कोशिश कर रहा था एक प्रणाली सेवा के रूप में nginx,

यहाँ स्क्रिप्ट है कि मैं केवल 2 मामूली परिवर्तन किया जाता है:

1. DAEMON=/usr/local/nginx/sbin/nginx 

2.NGINX_CONF_FILE="/etc/nginx/nginx.conf" 

तो sudo सेवा nginx शुरू

यह

[email protected]:/usr/local$ sudo service nginx start 
* Starting Nginx Server... 
    ...done 

काम करता है।

लेकिन सेवा nginx रोकने के लिए और सेवा nginx फिर से लोड

मुझे एक त्रुटि

[email protected]:/usr/local$ sudo service nginx stop 
* Stopping Nginx Server... 
    ...fail! 

देने के लिए और त्रुटि लॉग/error.log फ़ाइल

उत्तर

20

मैं मिला है पर प्रकट नहीं होता उबंटू 12.04 पर निगेंक्स के साथ समान समस्याएं, स्रोत और इनिट स्क्रिप्ट से nginx संकलन के साथ आपके समान स्रोत से लिया गया।

सेवा init फ़ाइल के साथ अच्छी तरह से शुरू हुई, लेकिन बंद या पुनरारंभ नहीं किया गया। अंत में कारण nginx.conf और init स्क्रिप्ट में pid फ़ाइल का एक अलग पथ था। सुनिश्चित करें कि वे दोनों एक ही स्थान पर इंगित करते हैं।

+0

उत्तर के लिए धन्यवाद। मैं लंबे समय से इंतजार कर रहा हूं। क्या आप ऐसा करने के लिए अधिक जानकारी समझा सकते हैं जो उन्हें एक ही स्थान पर इंगित करने देता है? – mko

+3

@ nozloy आपकी nginx.conf फ़ाइल में, आपको "pid /tmp/nginx.pid" पंक्ति मिलती है; आपको उस निर्देशिका का उपयोग करना चाहिए और अपनी init स्क्रिप्ट में प्रत्येक क्रिया के लिए पिड फ़ाइल के इनिट स्क्रिप्ट स्थान को बदलना चाहिए। – Philip

+0

ऐसी परिस्थितियों के लिए जहां रोक/पुनरारंभ करना अंतःक्रियात्मक रूप से विफल रहता है (अक्सर पीआईडी ​​फ़ाइल को हटा देता है, लेकिन मास्टर समेत प्रक्रियाएं मर नहीं जाएंगी), [यह उत्तर] देखें (http://unix.stackexchange.com/questions/119037/why- नहीं करता है-रोक-nginx-server-मारने-प्रक्रियाओं से जुड़े-साथ-यह)। – Ville