जब आप काम कर रहे होते हैं, तो कभी-कभी आपके प्रोग्राम अचानक से फ़्रीज़ हो जाते हैं। दूसरी बार, प्रोग्राम अभी भी चल रहे हैं लेकिन उच्च प्रोसेसर या मेमोरी खपत के साथ। लिनक्स में ps
. का उपयोग करके इसे ठीक करने का एक तरीका है (पी रोसे एस टाटस) कमांड। यहां हम आपको दिखाते हैं कि ps
. का उपयोग कैसे करें वर्तमान में चल रही प्रक्रियाओं और उनके पीआईडी को सूचीबद्ध करने के लिए लिनक्स में कमांड। फिर आप अपने संसाधनों का उपभोग करने वाली प्रक्रियाओं को ढूंढ और मार सकते हैं।
“ps” कमांड का उपयोग करना
ps
कमांड का उपयोग स्वयं किया जा सकता है। यह सूचना के चार कॉलम आउटपुट करेगा:
- PID :सिस्टम द्वारा परिभाषित प्रक्रिया की विशिष्ट पहचानकर्ता। यह वह मूल्य है जिसका उपयोग हम किसी प्रक्रिया को रोकने के लिए करते हैं।
- टीटीवाई :टर्मिनल जहां से प्रक्रिया शुरू की गई थी।
- समय :प्रक्रिया द्वारा उपयोग किए जाने वाले CPU समय की कुल राशि।
- सीएमडी :आदेश जो प्रक्रिया उत्पन्न करता है
ध्यान दें कि जब आप बिना किसी विकल्प के कमांड का उपयोग करते हैं, तो यह आपको अधिक जानकारी नहीं दिखाता है। इसे और अधिक उपयोगी बनाने के कुछ तरीके यहां दिए गए हैं।
<एच2>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. प्रक्रिया आईडी द्वारा प्रक्रिया को फ़िल्टर करें
यदि आप उस चल रही प्रक्रिया की प्रक्रिया आईडी जानते हैं जिसे आप दिखाना चाहते हैं, तो आप इसके लिए विशेष रूप से -p
के साथ फ़िल्टर कर सकते हैं झंडा। यह कई पीआईडी को तर्क के रूप में ले सकता है, एक अल्पविराम द्वारा अलग किया जाता है और कोई स्थान नहीं होता है।
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
. के लिए विशिष्ट आउटपुट प्रदर्शन विकल्प सेट करता है आदेश के परिणाम। पीएस के लिए मानक प्रदर्शन विकल्पों की पूरी सूची देखें।
9. पदानुक्रमित ट्री शैली में परिणाम प्रदर्शित करें
ps -e --forest
यह प्रक्रियाओं को प्रदर्शित करने के लिए ट्री-स्टाइल संरचना बनाने के लिए ASCII कला का उपयोग करता है। फोर्कड और बच्चों की प्रक्रियाओं को उपयुक्त मूल प्रक्रियाओं के वंशज के रूप में दिखाता है, मिलान करने के लिए क्रमबद्ध करता है। पेड़ की "शाखाओं" को छिपाने के लिए, -H
. का उपयोग करें --forest
. के स्थान पर ।
ps -p 4041 -L
-L
पीएस की किसी भी कार्यक्षमता के लिए थ्रेडेड डिस्प्ले पर फ़्लैग टॉगल करता है। किसी विशिष्ट प्रक्रिया के थ्रेड्स को ट्रैक करते समय यह सबसे उपयोगी होता है।
11. सभी रूट प्रक्रियाएं दिखाएं
ps -f -U root -u root
वास्तविक और प्रभावी मूल पहचान के साथ चलने वाली सभी प्रक्रियाओं की खोज करें। यह उन्हें पूर्ण-लंबाई वाले प्रारूप में दिखाता है, इसके लिए धन्यवाद -f
झंडा। आप इसे -o
. के साथ जोड़ सकते हैं आउटपुट को कस्टमाइज़ करने के लिए फ़्लैग करें।
किसी प्रक्रिया को रोकने के लिए किल कमांड का उपयोग करें
एक बार जब आप दुर्व्यवहार की प्रक्रिया का पता लगा लेते हैं, तो आप चल रही प्रक्रिया को मारने के लिए किल कमांड का उपयोग कर सकते हैं। आदेश एक प्रक्रिया को एक संकेत भेजता है जो इसे समाप्त करता है। जब आपके प्रोग्राम फ़्रीज़ हो जाते हैं, तो अधिकांश समय आपको उन्हें -9
. के साथ बलपूर्वक मारने की आवश्यकता होगी विकल्प।
पीएस का आउटपुट एक त्वरित दृश्य है। htop
के विपरीत , यह स्वयं को गतिशील रूप से अद्यतन नहीं करता है। इसका मतलब यह है कि कौन सी प्रक्रिया गलत व्यवहार कर रही है, इसकी स्पष्ट तस्वीर प्राप्त करने के लिए आपको इसे कई बार चलाना पड़ सकता है। प्रक्रियाओं का अप-टू-डेट दृश्य प्राप्त करने के लिए, आप Linux सिस्टम के लिए कुछ अन्य कमांड आज़मा सकते हैं।