किपल के साथ इस्तेमाल होने पर क्या करता है?


16

कभी-कभी जब मैं killallटर्मिनल से कमांड चला रहा होता हूं , तो एक सहकर्मी मेरी स्क्रिप्ट को दिखाने के लिए सुझाएगा या संपादित करेगा killall -HUP

-HUPभाग क्या करता है?


यहां किलर के लिए Apple मैन पेज है: developer.apple.com/library/mac/documentation/Darwin/Reference/… यह h = help, u = user और p = प्रक्रिया की तरह दिखता है। लेकिन वे सभी निचले मामले हैं। मैं मैन पेज पर ऊपरी मामले के मापदंडों को नहीं देखता, लेकिन ऊपरी मामले के पूरी तरह से अलग अर्थ हो सकते हैं - या वे मौजूद नहीं हो सकते हैं ..
डेविड डेलमोनेट

जवाबों:


22

-HUPविकल्प संकेत है कि द्वारा प्रक्रियाओं को भेजा है killallआदेश। यह बताना थोड़ा कठिन हो सकता है, लेकिन killallमैनुअल में प्रासंगिक प्रविष्टि है:

-SIGNAL     Send a different signal instead of the default TERM.  The signal may be specified
            either as a name (with or without a leading SIG), or numerically.

डिफ़ॉल्ट TERMसिग्नल जो killallभेजता है और सिग्नल के बीच का अंतर HUPकाफी हद तक उस प्रोग्राम पर निर्भर करता है जिसे आप सिग्नल भेज रहे हैं। कार्यक्रम के अंत में, वे एक अलग रुकावट संकेत मूल्य प्राप्त करते हैं। इसलिए कार्यक्रम मूल्य के आधार पर इंटरप्ट को पकड़ सकता है और तय कर सकता है, अगर उन्हें एक काम या दूसरे को करना चाहिए।

TERMसंकेत (ऐतिहासिक दृष्टि से "संकेत समाप्त") आम तौर पर अपने समापन (के politer संस्करण है अनुरोध करने के लिए एक कार्यक्रम के लिए भेज दिया जाता है के लिए मजबूर कर के साथ अपने समापन KILLसंकेत)। कार्यक्रम TERMसिग्नल को पकड़ने और अनदेखा करने के लिए स्वतंत्र है । यदि इसे नहीं करना है तो इसे समाप्त नहीं करना है और यह इस संकेत को पूरी तरह से अनदेखा कर सकता है।

HUPसंकेत (ऐतिहासिक दृष्टि से "hangup संकेत") आम तौर पर अनुरोध करने के लिए एक कार्यक्रम के लिए भेज दिया जाता है कि वह पुन: प्रारंभ और इस प्रक्रिया में अपने सभी विन्यास फिर से पढ़ता है। कार्यक्रम का वास्तविक व्यवहार कार्यक्रम-विशिष्ट कार्यान्वयन पर निर्भर करता है। नहीं सभी कार्यक्रमों को पकड़ने HUPऔर वे सम्मेलन या हठधर्मिता के लिए आवश्यक नहीं हैं। उदाहरण के लिए, अपाचे वेब सर्वर एक HUPसिग्नल को पकड़ लेगा और इसकी सभी कॉन्फ़िगरेशन फ़ाइलों को फिर से पढ़ेगा लेकिन यह किसी भी प्रक्रिया को पुनरारंभ नहीं करेगा।

यदि आप प्रक्रियाओं को वास्तव में समाप्त करना चाहते हैं और इस बारे में चिंता न करें कि वे सिग्नल को पकड़ने और पालन करने जा रहे हैं तो सिग्नल का उपयोग करता है KILL। इसे पकड़ा या अनदेखा नहीं किया जा सकता है और प्रक्रिया समाप्त हो सकती है।

उपलब्ध POSIX संकेतों की अच्छी समीक्षा के लिए यह विकिपीडिया लेख देखें


2
SEE ALSO सेक्शन में किलॉल के लिए मैन पेज के निचले भाग में, किल मैनपेज का एक लिंक है, जो कुछ संकेतों को सूचीबद्ध करता है और वे क्या करते हैं।
इयान सी

मैं उन #FAILलोगों में से एक हूं जो कभी भी स्विच को नहीं पढ़ते हैं। धन्यवाद!
डेनियल-जेम्स डब्ल्यू

"हैंगप सिग्नल" के रूप में, एचयूपी आमतौर पर एक प्रोग्राम को भेजा जाता है जब उपयोगकर्ता लॉग आउट करता है या उस शेल को समाप्त करता है जो प्रोग्राम को शुरू करता है। यदि सिग्नल को पकड़ना प्रोग्राम द्वारा लागू नहीं किया जाता है, तो प्रोग्राम आमतौर पर समाप्त हो जाएगा। जैसा कि ऊपर उल्लेख किया गया है, संकेत प्राप्त करने वाला कार्यक्रम संकेत को पकड़ने के परिणामस्वरूप किसी भी वांछित गतिविधि को लागू कर सकता है, जैसा कि अपाचे उदाहरण द्वारा इंगित किया गया है।
नछबर

2

-HUP"लटका" संकेत है कि, कोई एप्लिकेशन बंद करने को गति प्रदान यह कॉन्फ़िग फ़ाइल को पढ़ने, और उसके बाद फिर से शुरू हो सकता है। जरूरी नहीं कि बिना इसके इस्तेमाल से बेहतर कोई हो।

killall Finder

तथा

killall -HUP Finder

सम्मानपूर्वक समान हैं। OS X फाइंडर में रिलॉन्च होगा, लेकिन यह कॉन्फ़िगरेशन फ़ाइल को फिर से पढ़ेगा। यह वास्तव में मामला नहीं हो सकता है यदि जो एप्लिकेशन चल रहा है उसमें -HUPफ़ंक्शन का निर्माण नहीं किया गया है। जैसा कि पिछले पोस्टर में अपाचे का उल्लेख किया गया था। यह पढ़ता है कि यह फ़ाइलों को कॉन्फ़िगर कर रहा है, लेकिन यह फिर से लॉन्च नहीं हो सकता।

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