Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

Linux में ps कमांड का उपयोग करके प्रोसेस को कैसे मारें

जब आप काम कर रहे होते हैं, तो कभी-कभी आपके प्रोग्राम अचानक फ्रीज हो जाते हैं। अन्य समय में, प्रोग्राम अभी भी चल रहे होते हैं लेकिन उच्च प्रोसेसर या मेमोरी खपत के साथ। Linux में ps (Process Status) कमांड का उपयोग करके इसे ठीक करने का एक तरीका है। यहां हम आपको दिखाते हैं कि Linux में ps कमांड का उपयोग करके वर्तमान में चल रही प्रक्रियाओं और उनके PIDs को कैसे सूचीबद्ध किया जाए। फिर आप उन प्रक्रियाओं को ढूंढकर मार सकते हैं जो आपके संसाधनों का उपभोग कर रही हैं।

ps कमांड का उपयोग करना

ps कमांड का उपयोग अपने आप में किया जा सकता है। यह चार कॉलम की जानकारी आउटपुट करेगा:

  • PID: सिस्टम द्वारा परिभाषित प्रक्रिया का अद्वितीय पहचानकर्ता। यह वह मान है जिसका उपयोग हम किसी प्रक्रिया को रोकने के लिए करते हैं।
  • TTY: वह टर्मिनल जिससे प्रक्रिया शुरू की गई थी।
  • TIME: प्रक्रिया द्वारा उपयोग किया गया कुल CPU समय।
  • CMD: वह कमांड जो प्रक्रिया उत्पन्न करती है

ध्यान दें कि जब आप बिना किसी विकल्प के कमांड का उपयोग करते हैं, तो यह आपको अधिक जानकारी नहीं दिखाता है। यहां इसे अधिक उपयोगी बनाने के कुछ तरीके दिए गए हैं।

1. सभी उपयोगकर्ताओं की प्रक्रियाओं को सूचीबद्ध करें

जब कुछ प्रोग्राम इंस्टॉल किए जाते हैं, तो वे कभी-कभी प्रक्रिया चलाने के लिए अतिरिक्त उपयोगकर्ता भी बनाते हैं। उपयोगकर्ताओं की प्रक्रियाओं को सूचीबद्ध करने के लिए, -e विकल्प का उपयोग करें:

ps -e

और इसका आउटपुट:

PID TTY TIME CMD
1 ? 00:00:02 systemd
2 ? 00:00:00 kthreadd
3 ? 00:00:00 kworker/0:0
4 ? 00:00:00 kworker/0:0H
5 ? 00:00:00 kworker/u256:0
6 ? 00:00:00 mm_percpu_wq

2. अधिक जानकारी के साथ प्रक्रिया सूचीबद्ध करें

चल रही प्रक्रिया को सूचीबद्ध करते समय अधिक जानकारी प्राप्त करना संभव है। ऐसा करने के लिए, आप ef विकल्प का उपयोग कर सकते हैं।

ps -ef

और इसका आउटपुट:

UID PID PPID C STIME TTY TIME CMD
root 1 0 0 21:34 ? 00:00:03 /sbin/init maybe-ubiquity
root 2 0 0 21:34 ? 00:00:00 [kthreadd]
root 3 2 0 21:34 ? 00:00:00 [kworker/0:0]
root 4 2 0 21:34 ? 00:00:00 [kworker/0:0H]
root 6 2 0 21:34 ? 00:00:00 [mm_percpu_wq]
root 7 2 0 21:34 ? 00:00:00 [ksoftirqd/0]

3. प्रोसेस ID द्वारा प्रक्रिया को फ़िल्टर करें

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

ps -ef -p 1234,5678,9012

4. किसी उपयोगकर्ता के स्वामित्व वाली प्रक्रियाओं को सूचीबद्ध करें

आप u विकल्प के बाद उपयोगकर्ता के नाम का उपयोग करके किसी उपयोगकर्ता के स्वामित्व वाली प्रक्रियाओं को भी सूचीबद्ध कर सकते हैं:

ps -u userName

और इसका आउटपुट:

PID TTY TIME CMD
2832 ? 00:00:00 systemd
2842 ? 00:00:00 (sd-pam)
3043 ? 00:00:00 sshd
3044 pts/1 00:00:00 bash
18396 pts/1 00:00:00 ps

5. सक्रिय प्रक्रियाओं को सूचीबद्ध करें

ax विकल्प का उपयोग करके सभी सक्रिय प्रक्रियाओं को सूचीबद्ध करना संभव है:

ps -ax

और इसका आउटपुट:

PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /sbin/init maybe-ubiquity
2 ? S 0:00 [kthreadd]
3 ? I 0:00 [kworker/0:0]
4 ? I< 0:00 [kworker/0:0H]
6 ? I< 0:00 [mm_percpu_wq]
7 ? S 0:00 [ksoftirqd/0]

6. उपयोगकर्ताओं के साथ सक्रिय प्रक्रियाओं को सूचीबद्ध करें

-aux फ्लैग जोड़कर उपयोगकर्ताओं के साथ सभी सक्रिय प्रक्रियाओं को सूचीबद्ध करना संभव है:

ps -aux

और इसका आउटपुट:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 78132 9188 ? Ss 21:34 0:02 /sbin/init maybe-ubiquity
root 2 0.0 0.0 0 0 ? S 21:34 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I 21:34 0:00 [kworker/0:0]
root 4 0.0 0.0 0 0 ? I< 21:34 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? I< 21:34 0:00 [mm_percpu_wq]
root 7 0.0 0.0 0 0 ? S 21:34 0:00 [ksoftirqd/0]
root 8 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_sched]
root 9 0.0 0.0 0 0 ? I 21:34 0:00 [rcu_bh]
root 10 0.0 0.0 0 0 ? S 21:34 0:00 [migration/0]

7. प्रोग्राम के नाम से प्रक्रिया को फ़िल्टर करें

ps परिणाम पर फ़िल्टर लागू करके चल रहे किसी विशिष्ट प्रोग्राम के बारे में जानकारी प्राप्त करना संभव है:

ps -aux | grep docker

और इसका आउटपुट:

root 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 0:03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 0:00 grep --color=auto docker

वैकल्पिक रूप से, आप प्रक्रिया को उसके नाम से फ़िल्टर करने के लिए C विकल्प का भी उपयोग कर सकते हैं:

ps -C name

8. विशिष्ट कॉलम प्रदर्शित करें

चार डिफ़ॉल्ट कॉलम के अलावा, आप ps से जानकारी का एक अतिरिक्त कॉलम प्रदर्शित करवा सकते हैं। उदाहरण के लिए:

ps -e -o pid,uname,pcpu,pmem,comm

-o फ्लैग ps कमांड के परिणामों के लिए विशिष्ट आउटपुट प्रदर्शन विकल्प सेट करता है। ps के लिए मानक प्रदर्शन विकल्पों की पूरी सूची देखें।

9. पदानुक्रमित ट्री शैली में परिणाम प्रदर्शित करें

ps -e --forest

यह प्रक्रियाओं को प्रदर्शित करने के लिए ASCII आर्ट का उपयोग करके एक ट्री-शैली संरचना बनाता है। फोर्क की गई और चाइल्ड प्रक्रियाओं को उपयुक्त पैरेंट प्रक्रियाओं के वंशज के रूप में दिखाता है, मिलान करने के लिए सॉर्टिंग के साथ। ट्री की "शाखाओं" को छिपाने के लिए, --forest के स्थान पर -H का उपयोग करें।

10. प्रोसेस थ्रेड्स प्रदर्शित करें

ps -p 4041 -L

-L फ्लैग ps की किसी भी कार्यक्षमता के लिए थ्रेडेड डिस्प्ले को चालू करता है। यह किसी विशिष्ट प्रक्रिया के थ्रेड्स को ट्रैक करते समय सबसे उपयोगी होता है।

11. सभी रूट प्रक्रियाएं दिखाएं

ps -f -U root -u root

वास्तविक और प्रभावी रूट पहचान के साथ चल रही सभी प्रक्रियाओं की खोज करें। यह उन्हें -f फ्लैग के कारण पूर्ण-लंबाई प्रारूप में दिखाता है। आप आउटपुट को अनुकूलित करने के लिए इसे -o फ्लैग के साथ जोड़ सकते हैं।

प्रक्रिया को रोकने के लिए kill कमांड का उपयोग करें

एक बार जब आप गलत व्यवहार करने वाली प्रक्रिया का पता लगा लेते हैं, तो आप चल रही प्रक्रिया को मारने के लिए kill कमांड का उपयोग कर सकते हैं। कमांड एक सिग्नल भेजता है जो प्रक्रिया को समाप्त करता है। जब आपके प्रोग्राम फ्रीज हो जाते हैं, तो ज्यादातर समय आपको उन्हें -9 विकल्प के साथ जबरन मारना होगा।

ps का आउटपुट एक त्वरित दृश्य है। htop के विपरीत, यह स्वयं को गतिशील रूप से अपडेट नहीं करता है। इसका मतलब है कि आपको यह स्पष्ट तस्वीर प्राप्त करने के लिए इसे कई बार चलाना पड़ सकता है कि कौन सी प्रक्रिया गलत व्यवहार कर रही है। प्रक्रियाओं का अद्यतन दृश्य प्राप्त करने के लिए, आप Linux सिस्टम के लिए कुछ अन्य कमांड आज़मा सकते हैं।

  1. Linux में नेटवर्क कनेक्शन मॉनिटर करने के लिए ss कमांड का उपयोग कैसे करें Linux में नेटवर्क कनेक्शन मॉनिटर करने के लिए ss कमांड का उपयोग कैसे करें

    यदि आप Linux का उपयोग करते हैं, तो शायद ऐसा समय आएगा जब आपको अपने नेटवर्क के बारे में अधिक जानने की आवश्यकता होगी। कई टूल इसमें आपकी मदद कर सकते हैं, और कुछ दूसरों की तुलना में अधिक जटिल हैं। ss कमांड एक ऐसा टूल है जिस पर आप भरोसा कर सकते हैं कि यह कई मशीनों पर इंस्टॉल होगा, इसलिए इसे जानना उपयोगी ह

  1. Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

    Linux में किसी प्रक्रिया को मारने के लिए कई तरीकों का उपयोग किया जा सकता है। यह ट्यूटोरियल आपको सिखाएगा कि टूटी हुई प्रक्रियाओं को कैसे ढूंढें और मारें। एक प्रक्रिया आसानी से अनाथ हो सकती है। चाहे उद्देश्य से या नहीं, एक पैरेंट प्रक्रिया क्रैश हो सकती है और एक चाइल्ड प्रक्रिया को चलता हुआ छोड़ सकती

  1. Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण

    Linux में watch कमांड एक काम करता है – एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहाँ इसका उपयोग कैसे करें। watch कमांड सिंटैक्स watch कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: OPTIONS नीचे दी गई तालिका से विकल्पों की