सेल्टरी कार्यकर्ता को टीईआरएम सिग्नल जारी करने के बाद सीटीएलआर-सी कीबोर्ड इंटरप्ट का उपयोग करके दो बार (गर्म शटडाउन और ठंडा शटडाउन), सेलेरी कार्यकर्ता बस लटका हुआ है। यह संदेश नहीं ले रहा है या कार्यों को निष्पादित नहीं कर रहा है (जैसा कि अपेक्षित है) लेकिन यह या तो बंद नहीं हो रहा है।सेलेरी साफ क्यों बंद नहीं हो रही है?
मैंने दृश्य के पीछे क्या चल रहा है यह देखने के लिए सेलेरी प्रक्रियाओं पर strace
चलाया।
strace -p 27874
Process 27874 attached - interrupt to quit
select(4, [3], NULL, NULL, {0, 562000}) = 0 (Timeout)
futex(0x871a808, FUTEX_WAKE, 1) = 0
select(4, [3], NULL, NULL, {1, 0}) = 0 (Timeout)
futex(0x871a808, FUTEX_WAKE, 1) = 0
......................................................
मैं जानता हूँ कि मैं करने के लिए प्रक्रियाओं के लिए एक KILL संकेत जारी कर सकता है: यहाँ अजवाइन मुख्य प्रक्रिया
strace -p 27867
Process 27867 attached - interrupt to quit
futex(0xb966a78, FUTEX_WAIT, 0, NULL
और यहाँ की पीआईडी पर strace
उत्पादन मैं strace
बच्चे की प्रक्रिया पर क्या कर पाया है उनसे छुटकारा पाएं। लेकिन मुझे यह जानकर उत्सुकता है कि वास्तव में इन प्रक्रियाओं को बंद करने के लिए क्या रोक रहा है, और यदि इसके बारे में कुछ करना संभव है।
सॉफ्टवेयर ढेर: अजगर 2.6.2, अजवाइन 2.4.6, CentOS 5.0
अद्यतन: CPU उपयोग लगभग 0% नीचे है। ये कार्य काफी सीपीयू गहन हैं, इसलिए यह पुष्टि करता है कि वर्तमान में कोई कार्य सक्रिय नहीं है।
कोई सक्रिय कार्य नहीं है। स्टॉप सिग्नल जारी करने के समय चल रहे कार्यों को समाप्त कर दिया गया था। कतार की लंबाई वही रहती है। लॉग में कुछ भी नहीं हो रहा है। लेकिन प्रक्रियाएं अभी भी समाप्त नहीं हो रही हैं। जैसा कि मैंने कहा, मैं यह कर सकते हैं * मुद्दा एक को मारने और उनमें से छुटकारा पाने के *। लेकिन यह एक प्रभावी समाधान नहीं होगा। इस सॉफ़्टवेयर का विश्वसनीय रूप से उपयोग करने के लिए, मुझे इसे स्वचालित रूप से w/थोड़ा या कोई मैन्युअल हस्तक्षेप रोकने (और शुरू) करने में सक्षम होना चाहिए। – rubayeet
इसके लिए एक अच्छा समाधान अजवाइन को खत्म करना है। पर्यवेक्षक एक उत्कृष्ट उम्मीदवार है। – hymloth
मैं कार्यकर्ताओं daemonizing के लिए जेनेरिक init स्क्रिप्ट का उपयोग कर रहा हूँ: https://github.com/ask/celery/blob/master/contrib/generic-init.d/celeryd – rubayeet