प्रक्रिया की आईडी का पता लगाने के लिए टर्मिनल कमांड क्या है


12

मैं कमांड लाइन का उपयोग करके एक प्रक्रिया से बाहर निकलना चाहता हूं, लेकिन मैं प्रक्रिया की आईडी देखने के लिए कमांड को याद नहीं कर सकता। क्या कोई इसे जानता है?

जवाबों:


13

किसी प्रक्रिया की आईडी (उसका नाम दिया गया) पता लगाने का कमांड है pidof। हालाँकि, आपका इरादा प्रक्रिया को मारना है, pidofपहले इसका उपयोग करने की तुलना में बेहतर / आसान तरीके हैं:

जिस प्रक्रिया को आप मारना चाहते हैं, उसे इसके नाम से विशिष्ट रूप से पहचाना जाता है (या आप उस नाम के साथ सभी प्रक्रियाओं को मारना चाहते हैं), आपको इसकी जानकारी जानने की आवश्यकता नहीं है। आप बस कर सकते हैं killall processname

यदि एक ही नाम के साथ कई प्रक्रियाएँ हैं, लेकिन आप केवल उनमें से एक को मारना चाहते हैं, तो इसका उपयोग pidofकरने से आपको बहुत मदद नहीं मिलेगी, क्योंकि यह आपको pids देगा, लेकिन यह आपको यह निर्धारित करने के लिए कोई जानकारी नहीं देगा कि आपको कौन सी जानकारी प्रदान करनी है pids उस प्रक्रिया से संबंधित है जिसे आप वास्तव में मारना चाहते हैं।

इस मामले में आप ऐसा कर सकते हैं ps aux | grep processnameजो दिए गए नाम के साथ सभी प्रक्रियाओं को दिखाएगा और साथ ही वे जिस कंसोल पर चल रहे हैं (यदि लागू हो) और वे तर्क जिनके साथ उन्हें बुलाया गया था, जो उम्मीद करते हैं कि आप जिस प्रक्रिया की तलाश कर रहे हैं, उसे पहचान सकते हैं ।

यदि प्रक्रिया ने कोई एक्स-विंडो खोली है, तो आप xkillमारने के लिए भी उपयोग कर सकते हैं (आह्वान करें xkillऔर फिर विंडो पर क्लिक करें)।


7

आपके पास एक नज़र होनी चाहिए pgrepऔर pkill, दो बहुत ही आसान और शक्तिशाली उपयोगिताओं जो कि अधिकांश लिनक्स और यूनिक्स प्रणालियों पर पाई जाती हैं।

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes

5

आप ps -Aवर्तमान में चल रही सभी प्रक्रियाओं (उनकी प्रक्रिया आईडी के साथ) को दिखाने के लिए टर्मिनल में दौड़ सकते हैं।


grepविशिष्ट प्रक्रिया के नाम की खोज करने के लिए पाइप :ps -A | grep 'my name'
गेब्रियल स्टेपल्स

2

मुझे भी इसी तरह की समस्या थी। मैंने उपयोग किया pstree -p; इसने मुझे प्रक्रिया आईडी सहित वर्तमान चल रही प्रक्रियाओं को दिखाया।


दिलचस्प आदेश
कूदनेट


1

मेरा पसंदीदा है pstree -p | grep $(program_name)। यह वास्तव में प्रक्रिया को पकड़ता है, इसे हाइलाइट करता है और कोष्ठक में पिंड दिखाता है।

मेरा अगला पसंदीदा (विशेषकर जब प्रोग्रामिंग और प्रक्रिया से सभी ग्रिड की आवश्यकता होती है) pgrep -law ""। यह शाब्दिक रूप से आपको आवेदन के बाद चलने वाले प्रत्येक पीआईडी ​​देता है (पूर्ण पथ के साथ)।

इसे pgrep -lw ""प्रोग्राम नाम या उसके बाद pgrep -lके सभी पिड्स के लिए भी कम किया जा सकता है

बेशक, आप किसी विशेष प्रोग्राम (या किसी प्रोग्राम के भाग के नाम) को खोज सकते हैं। (( pgrep -lw firefशायद "4567 फ़ायरफ़ॉक्स" की तरह कुछ प्रदर्शित करेगा)।


pstree -psH $(pgrep prgram_name)पहले मामले के लिए बेहतर नहीं होगा ?
मूरू

हाँ, यह भी काम करता है। आप इसके लिए एक उपनाम बना सकते हैं। मैं केवल एक कार्यक्रम के नाम का प्रतिनिधित्व करने के लिए $ () का उपयोग कर रहा था; मुझे लगता है कि डॉलर के संकेत के कारण $ (pgrep नाम) टाइप करना थोड़ा कष्टप्रद है, लेकिन मुझे लगता है कि इसका एक उपनाम मददगार हो सकता है।
dylnmc

0

डुप्लीकेट प्रश्न पर @Ben के इस उत्तर ने मेरी समस्या हल कर दी है:

topटर्मिनल में कमांड का उपयोग करने पर विचार करें ।

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

आदमी शीर्ष के माध्यम से

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