Ubuntu में उपयोगकर्ताओं की सभी प्रक्रिया को मार डालो?


20

एक उपयोगकर्ता की सभी प्रक्रिया को कैसे मारें?

जब मैं ps auxकई उपयोगकर्ताओं के साथ प्रक्रिया की सूची प्राप्त करता हूं, और मैं name1उदाहरण के लिए उपयोगकर्ता की सभी प्रक्रिया को मारना चाहता हूं ! उबंटू में ऐसा करने की आज्ञा क्या है?



1
यदि उपयोगकर्ता वास्तविक व्यक्ति हैं तो यह शायद अच्छा विचार नहीं है। मुझे भी लगता है कि आप समय बचाने के लिए प्रक्रियाओं को मारना चाहते हैं। यह बहुत बुरा विचार है। उदाहरण के लिए, उबंटू में सेवाओं का उपयोग बंद किया जा सकता है sudo service the-service-name stop। हत्या की प्रक्रियाएँ दूषित फ़ाइलों, डेटाबेसों आदि को छोड़ सकती हैं
Tiktak

जवाबों:


27

इस मामले में, यह बहुत आसान है, आप killallएक ही बार में प्रक्रियाओं का एक समूह को मारने, या किसी अन्य सिग्नल को भेजने के लिए उपयोग कर सकते हैं । "फ़िल्टरिंग" विकल्पों में से एक मालिक है:killall --user name1


मुझे इस --userतर्क की जानकारी नहीं थी , धन्यवाद!
jmtd

4
यह ध्यान दिया जाना चाहिए कि killallजैसे कि सोलारिस यूनिक्स सभी चल रही प्रक्रियाओं को मारता है ! देखें: en.wikipedia.org/wiki/Killall
donothingsuccessfully

यह अनिवार्य रूप से ubuntu 18 पर लॉग इन किया।
मनोहर रेड्डी Poreddy

14

एक और विकल्प जोड़ना क्योंकि किसी ने भी इसका उल्लेख नहीं किया है, और मुझे पसंद नहीं है killall(सोलारिस पर इसका उपयोग करना आपदा का कारण बन सकता है)।

pkill अधिक पोर्टेबल है

pkill -u username

मुझे killallउबंटू में नहीं मिलता है, लेकिन pkillपहले से ही स्थापित है।
david.perez

2

उपयोगकर्ता को पहचानें, फिर killall -user <username>

उनके पास उनके सत्र को मारने से संबंधित एक बैश (या समान) प्रक्रिया होगी जो उनके सत्र को मार देगी।

उपयोगकर्ता क्या कर रहा है, इसका संभावित रूप से बेहतर अवलोकन प्राप्त करने के लिए - प्रयास करें pstree <username>


उपयोगकर्ता से पहले आपको दो डैश चाहिए जैसे--user
jmtd

1

स्थापित करें slay:

योग्यता स्थापित करें

फिर जारी करें slay some-user

ध्यान रखें कि यदि आप उन उपयोगकर्ताओं के लिए सामान को मारते हैं जिन्हें आप उद्देश्य के लिए नहीं जानते हैं, तो आप अपनी मशीन को अनुपयोगी (जब तक आप पुनः आरंभ नहीं करते) प्रस्तुत कर सकते हैं।

यदि आप वास्तव में स्ले स्थापित नहीं करना चाहते हैं:

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill

(थोड़ा इंतजार करें)

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9

1
Btw awkकुछ खुद को कुतर सकते हैं। कोई ज़रूरत नहीं है grep smth | awk, क्योंकि आप awk '/smth/{...}'इसके बजाय बस का उपयोग कर सकते हैं ।
भीड़

यहाँ आप के लिए एक आसान काम है। killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.