2012-08-14 7 views
5

मैं सिर्फ उत्सुक हूँ। हत्या के लिए मैन पेज का कहना है कि क्विट, उर्फ ​​सिग्नल # 3, एक "कोर" सिग्नल है। ऐसा लगता है कि यह जावा प्रक्रियाओं के लिए करता है, थ्रेड जानकारी डंप करता है। तो, क्या QUIT गलत नामक है? क्या यह सिर्फ जेवीएम एक सिंगल 3 हैंडलर लागू करता है जो धागे को डंप करता है?"kill -QUIT process_id" कैसे काम करता है?

+0

हाँ, QUIT एक गलत नाम है। जैसा कि @Will ने कहा, सूर्य ने सिर्फ सिग्नल 3 धागे को डंप करने का फैसला किया। – Gray

उत्तर

7

QUIT तर्कसंगत जावा के लिए एक गलत नामक है। लेकिन उस तर्क से कोई सिग्नल नाम एक गलत नामक हो सकता है यदि किसी एप्लिकेशन को सिग्नल के हैंडलर के डिफ़ॉल्ट व्यवहार को बदलने की अनुमति है।

असल में, यूनिक्स सिग्नल नामों के बीच पत्राचार और वास्तव में वे जो कुछ करते हैं वह हमेशा थोड़ा अस्पष्ट और कमजोर रहा है। हालांकि, डेवलपर्स 30+ सालों के लिए वास्तविक समस्या होने के बिना इस "मुद्दे" से निपट रहे हैं।

और हाँ, जावा थ्रेड स्टैक डंप व्यवहार JVM द्वारा कार्यान्वित किया गया है। डिफ़ॉल्ट यूनिक्स/LINUX व्यवहार प्रक्रिया के मेमोरी डंप को बनाना है, जब तक कि यह अन्य कारकों से अवरुद्ध न हो।

5

हाँ, JVM थ्रेड को डंप करने के लिए # 3 सिग्नल कैप्चर करता है। डिफ़ॉल्ट रूप से, एक सामान्य यूनिक्स प्रक्रिया के लिए, यह कोर डंप करता है (यानी प्रक्रिया की स्मृति स्नैपशॉट लें और इसे फ़ाइल में लिखें) और बाहर निकलें।

जावा के लिए, यह बहुत उपयोगी नहीं है, इसलिए यह इसके बजाय थ्रेड डंप करता है।

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