मैं उबंटू में प्रक्रियाओं को कैसे मारूं?

मैं अपने स्वयं के गैर-रूट खाते द्वारा चलने वाली सभी प्रक्रियाओं को कैसे मारूं?

मेरे पास कुछ कताई एसएमबीडी प्रक्रियाएं हैं जो मैंने अपनी विंडोज मशीन से की थीं और इसलिए मैंने लिनक्स सर्वर में टेलनेट किया और मैं उन कताई प्रक्रियाओं को मारना चाहता हूं । मेरे पास सेवाओं को पुनरारंभ करने या मशीन को रिबूट करने का अधिकार नहीं है ।

उन सभी प्रक्रियाओं को मारने के लिए जिन्हें आपको मारने की अनुमति है, बस कमांड चलाएं

kill -15 -1 या kill -9 -1 वांछित व्यवहार (उपयोग) के आधार पर man kill विवरण के लिए)

एक विशिष्ट प्रक्रिया को मारने के लिए, कहें, फ़ायरफ़ॉक्स, बस चलाएं

pkill firefox या killall firefox आप जो व्यवहार चाहते हैं उसके आधार पर: क्या 'के बीच अंतर & #39;किलॉल& # 39;और ' पीकिल'?

यदि आप देखना चाहते हैं कि कौन सी प्रक्रियाएँ चल रही हैं तो कमांड का उपयोग करें

ps -ef

यदि आप उपयोगकर्ता बॉब द्वारा सभी प्रक्रियाओं को देखना चाहते हैं, तो इससे मदद मिल सकती है

pgrep -l -u bob

या

ps -ef | grep bob

उपयोग करें sudo kill <pid> या sudo killall <process-name>

आप उपयोग कर सकते हैं

ps -ax | grep application name 

यदि आपकी खोज टर्मिनल में फ़ायरफ़ॉक्स प्रकार की तरह है ps -ax | grep firefox, यह संबंधित एप्लिकेशन की प्रक्रिया आईडी दिखाता है । आप उस एप्लिकेशन को रोक सकते हैं kill आदेश अगर प्रक्रिया आईडी = 1317,

kill -9 1317

चलो कुछ और कोशिश करते हैं:

sudo apt-get install htop 

top कमांड आपके सिस्टम के संसाधन उपयोग को देखने और उन प्रक्रियाओं को देखने का पारंपरिक तरीका है जो सबसे अधिक सिस्टम संसाधन ले रही हैं । शीर्ष प्रक्रियाओं की एक सूची प्रदर्शित करता है, जिसमें शीर्ष पर सबसे अधिक सीपीयू का उपयोग होता है ।

htop समझने में आसान लेआउट के साथ समान जानकारी प्रदर्शित करता है । यह आपको तीर कुंजियों के साथ प्रक्रियाओं का चयन करने और क्रियाओं को करने देता है, जैसे कि उन्हें मारना या उनकी प्राथमिकता बदलना F कुंजी।

मैं उपयोग करूंगा xkill. दर्ज करें xkill एक टर्मिनल में और विंडो में क्लिक करें, या दर्ज करें xkill और प्रक्रिया आईडी और इसे समाप्त कर दिया जाएगा ।

के बारे में अधिक पता चला xkill पर x.org।

उपयोगकर्ता के स्वामित्व वाली सभी प्रक्रियाओं को मारने का प्रयास करना username, भागो:

pkill -U username

मैं आपकी समस्या को 2 भागों में तोड़ दूंगा:

1) मैं अपने द्वारा शुरू की गई प्रक्रियाओं को कैसे ढूंढूं? इसे चलाएं:

ps -u `whoami`

whoami यदि आप उस खाते का नाम नहीं जानते हैं जिसका आप उपयोग कर रहे हैं, अन्यथा केवल बैक कोट्स के बिना खाते का नाम टाइप करें ।

यह उन सभी प्रक्रियाओं को सूचीबद्ध करेगा जिन्हें आपके खाते द्वारा हटाया जा सकता है ।

2) द ps कमांड प्रक्रिया संख्या, टीटीई, समय और सीएमडी को सूचीबद्ध करेगा । प्रक्रिया आईडी पहला कॉलम है । प्रक्रिया को मारने के लिए उस नंबर का उपयोग करें । प्रक्रिया को मारते समय सावधान रहें । यदि आप गलत को मारते हैं तो आप कुछ तोड़ सकते हैं process.To एक प्रक्रिया को मार डालो जिसका आप उपयोग करेंगे kill कमांड, जो प्रक्रिया को संकेत भेजता है । संकेत इंगित करता है कि प्रक्रिया क्या है चाहिए करते हैं । उदाहरण के लिए, एक भेजना -1 प्रक्रिया के लिए इसे कॉन्फ़िगरेशन फ़ाइल को फिर से लोड करने के लिए कहेंगे; एक भेजना -2 नियंत्रण दबाने के बराबर है+सी उस प्रक्रिया पर; -9 कर्नेल को प्रक्रिया को छोड़ने का कारण होगा, इसे प्रक्रिया में संचार किए बिना ।

मान लीजिए कि पीएस-यू whoami कुछ ऐसा लौटा

  PID TTY          TIME CMD 4333 pts/1    00:00:00 fish 4335 ?        00:00:00 fishd 4816 ?        00:00:00 intellij 4868 ?        00:50:42 java 4939 ?        00:00:19 fsnotifier64 7667 ?        02:49:08 firefox 7698 ?        00:00:00 unity-webapps-s

और आप को मारना चाहता था firefox इसकी प्रक्रिया आईडी द्वारा प्रक्रिया, तो आप करेंगे:

kill -1 7667

फिर आप उसी को फिर से चलाएंगे ps आदेश दें और जांचें कि क्या प्रक्रिया अभी भी चल रही थी । यदि यह अभी भी चल रहा है, तो एक करें

kill -2 7667

अपने तरीके से काम करना -9.

अपने खाते द्वारा शुरू की गई सभी प्रक्रियाओं को मारने के लिए, दर्ज करें kill <level> -1. पहले की तरह ही: अपने तरीके से काम करें -9.

यदि आप प्रक्रिया का नाम जानते हैं तो आप बस जा सकते हैं killall <processname>, जहां आप मारने की कोशिश कर रहे हैं । उदाहरण के लिए: killall fish (मछली, इस अर्थ में, अनुकूल इंटरैक्टिव खोल है) ।

के लिए प्रलेखन killall यहाँ मिल सकता है: http://manpages.ubuntu.com/manpages/hardy/man1/killall.1.html

इस आवेदन के साथ आप कार्यक्रम लिस्टिंग देख सकते हैं

स्थापित htop

sudo apt-get install htop

प्रक्रिया और मार प्रक्रिया देखने के लिए आप इसे स्थापित कर सकते हैं और बस हटा सकते हैं

enter image description here

मैंने एक छोटी सी स्क्रिप्ट लिखी जिसे मैंने मारने के लिए लिखा था (मेरे मामले में) स्काइप:

kill -s 9 `ps aux | grep skype | head -n 1 | cut -f4 -d" "`

लेकिन मैंने पाया कि जितना काम किया, वह अगले दिन काम नहीं किया क्योंकि पीआईडी एक अलग लंबाई थी और रिक्त स्थान की मात्रा अलग थी

फिर मैं इस साइट पर आया और कोशिश की

pgrep -l -u justin

जो प्रारूप में प्रक्रियाओं को आसानी से आउटपुट करता है

[pid] [name]

इसलिए मैंने स्क्रिप्ट में अपना कोड इस पर समायोजित किया:

kill -s 9 `pgrep -l -u justin | grep skype | cut -f1 -d" "`

यह क्या करता है सभी प्रक्रियाओं को पाइप करता है justin चल रहा है (जिसे किसी भी उपयोगकर्ता नाम में बदला जा सकता है) grep जो दिखता है skype (इसे आपकी प्रक्रिया में बदला जा सकता है) और फिर उस लाइन को पाइप करें cut जो तब केवल पीआईडी पढ़ता है और अंत में उस पीआईडी का उपयोग करता है kill इसे मारने की आज्ञा।

...लिनक्स में सभी प्रक्रियाएं संकेतों का जवाब देती हैं । सिग्नल अपने व्यवहार को समाप्त करने या संशोधित करने के लिए कार्यक्रमों को बताने का एक ओएस-स्तरीय तरीका है ।

पीआईडी द्वारा प्रक्रियाओं के संकेत कैसे भेजें

किसी प्रोग्राम को सिग्नल पास करने का सबसे आम तरीका किल कमांड है ।

जैसा कि आप उम्मीद कर सकते हैं, इस उपयोगिता की डिफ़ॉल्ट कार्यक्षमता एक प्रक्रिया को मारने का प्रयास करना है:

kill PID_of_target_process

यह प्रक्रिया को शब्द संकेत भेजता है । शब्द संकेत प्रक्रिया को समाप्त करने के लिए कहता है । यह प्रोग्राम को क्लीन-अप ऑपरेशन करने और सुचारू रूप से बाहर निकलने की अनुमति देता है ।

यदि प्रोग्राम दुर्व्यवहार कर रहा है और सिग्नल शब्द दिए जाने पर बाहर नहीं निकलता है, तो हम किल सिग्नल को पास करके सिग्नल को बढ़ा सकते हैं:

kill -KILL PID_of_target_process

यह एक विशेष संकेत है जो कार्यक्रम को नहीं भेजा जाता है ।

इसके बजाय, यह ऑपरेटिंग सिस्टम कर्नेल को दिया जाता है, जो प्रक्रिया को बंद कर देता है । इसका उपयोग उन कार्यक्रमों को बायपास करने के लिए किया जाता है जो उन्हें भेजे गए संकेतों को अनदेखा करते हैं । ..