जब मार -HUP को पुनः प्राप्त किया जाता है तो प्रोग्राम व्यवहार?


32

क्या यह पता लगाने का एक तरीका है कि जब यह मार संकेत HUP प्राप्त करता है तो कार्यक्रम क्या करेगा?
बिना कमांड के केवल कमांड चलाएं: D

उदाहरण के लिए,
killall -HUP pppdpppd
killall -HUP firefoxको पुनः आरंभ करेगा बस फ़ायरफ़ॉक्स को मार देगा

जवाबों:


47

इसका प्रलेखन पढ़ें। यही एकमात्र तरीका है। जैसा कि कीथ ने पहले से ही लिखा था , SIGHUP का मूल अर्थ यह था कि उपयोगकर्ता कार्यक्रम तक पहुंच खो चुका था, और इसलिए इंटरैक्टिव कार्यक्रमों को मरना चाहिए। डेमोंस - प्रोग्राम जो सीधे उपयोगकर्ता के साथ बातचीत नहीं करते हैं - उन्हें इस व्यवहार की कोई आवश्यकता नहीं होती है और इसके बजाय जब वे व्हाट्सअप प्राप्त करते हैं तो अक्सर अपनी कॉन्फ़िगरेशन फ़ाइलों को लोड करते हैं। लेकिन ये सिर्फ कन्वेंशन हैं।

यदि आपके पास स्रोत है, तो आप वह भी पढ़ सकते हैं। या यदि आपके पास केवल बाइनरी है, तो आप इसे डिस्सैम्बिंग करने की कोशिश कर सकते हैं, उन sigactionकॉल्स की तलाश कर सकते हैं जो सिग्नल हैंडलर सेट करते हैं SIGHUP, और यह पता लगाने की कोशिश करें कि वे सिग्नल हैंडलर क्या कर रहे हैं। पहली बार में उस कार्यक्रम में SITEUP नहीं भेजने की व्यवस्था करना आसान होगा।

किसी भी समय, किसी विशेष संकेत के संबंध में एक दी गई प्रक्रिया तीन राज्यों में से एक में है: इसे अनदेखा करना, डिफ़ॉल्ट कार्रवाई करना या कस्टम हैंडलर चलाना। कई इकाइयां आपको एक प्रक्रिया के सिग्नल मास्क को देखने की अनुमति देती हैं ps, जैसे ps sकि लिनक्स पर। यह आपको बता सकता है कि क्या प्रक्रिया सिग्नल को नजरअंदाज कर रही है या तुरंत ही SIGHUP पर मर जाएगी, लेकिन यदि प्रक्रिया ने एक हैंडलर सेट किया है तो आप यह नहीं बता सकते कि हैंडलर क्या करता है।


1
राइट्स डायल-अप मोडेम के दिनों में वापस चला जाता है। इसने मॉडेम कनेक्शन के हैंग-यूपी को संकेत दिया। यह अभी भी एक गिराए गए कनेक्शन पर लागू होता है, लेकिन इन दिनों इसकी शायद ही कभी एक हैंग-अप जो कि कनेक्शन को गिरा देती है।
बिलथोर

@ बिल सही है, लेकिन अगर यह अपने ग्राहक कनेक्शन खो देता है, तो एक SSH सत्र भी बाल प्रक्रिया है।
कीथ

@ कीथ: यही कारण है कि मैंने संकेत दिया कि यह गिराए गए कनेक्शनों पर लागू होता है, और शायद ही कभी हैंग-अप के कारण होता है। यह इस बिंदु पर भ्रामक होगा जैसे कि डिस्कनेक्ट से संबंधित किसी चीज़ के लिए अपना नाम बदलना, जैसे कि SIGDCN।
BillThor

18

डिफ़ॉल्ट कार्रवाई को SITEUP पर प्रक्रिया को समाप्त करना है। man 7 signalअधिक जानकारी के लिए देखें। लेकिन कार्यक्रम इसे फँसा सकते हैं और वे जो चाहें कर सकते हैं। चूंकि डेमॉन प्रक्रियाओं को कभी भी बाहर निकलने के लिए नहीं माना जाता है, इसलिए वे आमतौर पर अन्य उद्देश्यों के लिए SITEUP का उपयोग करते हैं, जैसे कि खुद को पुनर्संरचना करना (जैसा कि pppd करता है)। फ़ायरफ़ॉक्स डिफ़ॉल्ट कार्रवाई रखता है।

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