मैं ओएस एक्स पर शीर्ष का उपयोग करके एक प्रक्रिया को कैसे मार सकता हूं?


8

अन्य यूनिक्स पर, मैं उपयोग कर सकता हूं topऔर फिर Kप्रक्रिया आईडी को हिट और टाइप कर सकता हूं । मैं ओएस एक्स में ऐसा कैसे कर सकता हूं?

मैं kill [the_pid]कमांड लाइन पर अपने आप टाइप कर सकता हूं और यह काम करता है। हालाँकि, मैं सोच रहा था कि क्या topकार्यक्रम में रहते हुए इसके लिए कोई रास्ता था ।


1
यदि आप अन्य * NIXes पर हैं, तो आप शायद पहले ही उपयोग कर चुके हैं htop। मुझे यह मशीन से मशीन तक अधिक जानकारीपूर्ण और सुसंगत लगता है। यह MacPorts के माध्यम से उपलब्ध है।
एफफिथिथ

जवाबों:


5
# top

दबाएँ shift+ s। यह लाएगा:

signal [TERM]:

इस बिंदु पर आप केवल एक 'विनम्र' प्रक्रिया के अंतिम अनुरोध ("सिग्नल 15") के लिए रिटर्न दबा सकते हैं, जो इस प्रक्रिया को फाइलों को साफ करने, मेमोरी जारी करने आदि के लिए अनुमति देगा। शब्द 'किल' जो कि "9" का संकेत है, फिर दबाएँ return

अब शीर्ष एक प्रक्रिया (प्रक्रिया आईडी) के लिए संकेत देता है:

pid:

जिस प्रक्रिया को आप मारना चाहते हैं, उसे दर्ज करें और इसका ध्यान रखना चाहिए।


1
मैं SIGKILL को पहली पसंद के रूप में इस्तेमाल नहीं करूंगा। सुझाई गई SIGTERM को अधिकांश प्रक्रियाओं के लिए करना चाहिए। SIGKILL किसी भी प्रक्रिया को बिना किसी रोक-टोक या साफ-सफाई के समाप्त कर देता है, संभवतः एक "ज़ोंबी" प्रक्रिया को छोड़ देता है जिसमें अभी भी खुली फ़ाइल वर्णनकर्ता, आवंटित मेमोरी आदि हैं
Jan Steinman

धन्यवाद जन। हालाँकि मुझे इस उत्तर में SIGKILL का कोई उल्लेख नहीं दिखता है। शायद निहित है? इसके अलावा अगर SIGTERM एक बेहतर विकल्प है तो कृपया बताएं कि क्या टाइप करना है।
माइकल डुरंट

ठीक है, मैं इसे स्वयं अपडेट करूंगा।
माइकल डुरंट

4

से topआदमी पेज:

  S<signal><pid>
          Send  <sig>  to  <pid>.   <sig> can be specified either as a number or
          as a name (for example, HUP).  The default signal starts out as TERM.
          Each time a signal is  successfully  sent,  the default signal is updated
          to be that signal.  <pid> is a process id.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.