2013-09-02 15 views
10

मैं nginx शुरू कर दिया और जब मुझे लगता है कि मैं प्रकारइस अमर nginx कार्यकर्ता को कैसे मारें?

ps aux | grep nginx 

के बाद जड़

/etc/init.d/nginx stop 

तरह बंद करो और tcp LISTEN 2124 nginx WORKER

kill -9 2124 # tried with kill -QUIT 2124, kill -KILL 2124 

की तरह प्रतिक्रिया मिल और के बाद मैं फिर से टाइप

ps aux | grep nginx 

और tcp LISTEN 2125 nginx WORKER और इसी तरह की प्रतिक्रिया प्राप्त करें।

इस अमर चक नॉरिस कार्यकर्ता को कैसे मारें?

+1

मैं जानता हूँ कि यह मूर्खतापूर्ण है, लेकिन आप का प्रयास किया 'sudo सेवा nginx stop'? –

+0

मेरे मामले में मेरे पास कोई nginx स्थापित नहीं था, gitlab श्रमिकों को जन्म देने के लिए जिम्मेदार था। –

उत्तर

4

kill -9 के बाद इस प्रक्रिया को करने के लिए ज्यादा कुछ नहीं है - यह मर चुका है (या मरने के लिए बर्बाद हो)। कारण यह चारों ओर चिपकने का कारण है क्योंकि या तो (ए) इसकी मूल प्रक्रिया अभी तक इसके लिए इंतजार नहीं कर रही है, इसलिए कर्नेल प्रक्रिया तालिका तालिका प्रविष्टि रखता है ताकि माता-पिता ऐसा कर सकें, या (बी) प्रक्रिया एक पर फंस गई है सिस्टम को कर्नेल में कॉल करें जो परिष्करण नहीं कर रहा है (जो आमतौर पर एक बग्गी ड्राइवर और/या हार्डवेयर का मतलब है)।

यदि पहला मामला है, तो माता-पिता को बच्चे की प्रतीक्षा करने या माता-पिता को समाप्त करने के लिए, काम करना चाहिए। अधिकांश कार्यक्रमों में उन्हें "बच्चे की प्रतीक्षा" करने का स्पष्ट तरीका नहीं है, इसलिए यह एक विकल्प नहीं हो सकता है।

दूसरे मामले में, सबसे संभावित समाधान रीबूट करना है। ऐसे उपकरण हो सकते हैं जो ऐसी स्थिति को साफ़ कर सकें, लेकिन यह आम नहीं है। कर्नेल प्रसंस्करण क्या कर रहा है, इसके आधार पर, इसे अन्य माध्यमों से अनब्लॉक करना संभव हो सकता है - लेकिन इसके लिए उस प्रसंस्करण के ज्ञान की आवश्यकता होती है। उदाहरण के लिए, यदि प्रक्रिया कर्नेल लॉक पर अवरुद्ध है कि कुछ अन्य प्रक्रिया किसी भी तरह से अनिश्चित काल तक हो रही है, तो यह समाप्त करना कि अन्य प्रक्रिया समस्या को कम कर सकती है।

ध्यान दें कि ps आदेश इन दोनों राज्यों के साथ अलग कर सकते हैं। ये 'जेड' राज्य में दिखाई देते हैं। अधिक जानकारी के लिए पीएस मैन पेज देखें: http://linux.die.net/man/1/ps। वे "निष्क्रिय" पाठ भी दिखा सकते हैं।

0

मुझे इसी तरह का मुद्दा था।

चेक आप या Monit पर्यवेक्षक की तरह किसी भी स्वत: आरोग्य जो कार्यकर्ता चलाता है जब भी आप उन्हें रोकने की कोशिश उपयोग कर रहे हैं। यदि हाँ उन्हें अक्षम करें।

मेरे कार्यकर्ताओं पैदा की जा रही थी की वजह से परिवर्तन करने के लिए मैं भूल जाते हैं मैं Ubuntu में अद्यतन-rc.d में की गई।

तो मैं स्थापित sysv-rc-conf जो क्या प्रक्रियाओं रिबूट पर कर रहे हैं की एक साफ इंटरफ़ेस नियंत्रण देता है, तुम वहाँ से अक्षम कर सकते हैं और मैं तुम्हें कोई चक Noris जी उठने विश्वास दिलाता हूं: डी

0

मैं एक ही मुद्दा था। मेरे मामले में gitlab nginx श्रमिकों को लाने के लिए जिम्मेदार था। जब मैंने पूरी तरह से अपने सर्वर से गिटलैब हटा दिया तो मैं nginx श्रमिकों को मारने में सक्षम हो गया।

  1. ps -aux | grep "nginx"

  2. श्रमिकों के लिए खोजें और पहले स्तंभ हैं, जो उन्हें ऊपर ला रहा है पर जाँच करें।

  3. मारने या जिम्मेदार और श्रमिकों फिर से मारने unistall, वे उत्पन्न करना बंद कर देगा; D

संबंधित मुद्दे