Ubuntu'daki tüm kullanıcı işlemleri öldürülsün mü?


20

Bir kullanıcının tüm sürecini nasıl öldürürüm?

Yaptığımda ps auxbirkaç kullanıcıyla bir süreç listesi elde ediyorum ve name1örneğin tüm kullanıcı süreçlerini öldürmek istiyorum ! Ubuntu'da bunu yapmak için bir komut nedir?



1
Kullanıcılar gerçek kişiler ise, bu muhtemelen iyi bir fikir değildir. Ayrıca zaman kazanmak için süreçleri öldürmek istediğinizi düşünüyorum. Bu çok kötü bir fikir. Örneğin, Ubuntu'daki hizmetler kullanılarak durdurulabilir sudo service the-service-name stop. Öldürme işlemleri bozuk dosyalar, veritabanları vb.
Bırakabilir

Yanıtlar:


27

Bu durumda, oldukça basittir, killallbir kerede bir grup prosese öldürmek veya başka bir sinyal göndermek için kullanabilirsiniz . "Filtreleme" seçeneklerinden biri sahip:killall --user name1


--userArgümanın farkında değildim , teşekkürler!
jmtd

4
killallÖrneğin Solaris Unix'te yapabileceği tüm çalışan işlemleri öldürdüğüne dikkat edilmelidir ! Bakınız: en.wikipedia.org/wiki/Killall
donothingsuccessfully

Bu aslında Ubuntu 18. çıkışım
Manohar Reddy Poreddy

14

Kimse bahsetmediği için başka bir seçenek eklemek ve sevmiyorum killall(solaris üzerinde kullanmak felakete neden olabilir).

pkill daha taşınabilir

pkill -u username

killallUbuntu'da bulamıyorum , ancak pkillzaten kurulu.
david.perez

2

Kullanıcıyı tanımlayın, ardından killall -user <username>

Oturum oturumlarını öldürmekle ilişkili, oturumlarını öldürecek bir bash (veya benzeri) süreci olacak.

Bir kullanıcının ne yaptığına ilişkin potansiyel olarak daha iyi bir genel bakış elde etmek için - deneyin pstree <username>


kullanmadan önce iki tire gerekir--user
jmtd

1

Kurulum slay:

yetenek yükleme slay

Sonra sorun slay some-user.

Amacını bilmediğiniz kullanıcılar için bir şeyler öldürürseniz, makinenizi kullanılamaz hale getirebileceğinizi (yeniden başlatana kadar) unutmayın.

Gerçekten slay yüklemek istemiyorsanız:

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

(biraz bekle)

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

1
Btw bir awkşeyi sersemletebilir. Yapmanıza gerek yok grep smth | awk, çünkü awk '/smth/{...}'bunun yerine kullanabilirsiniz .
acele

İşte sizin için kullanışlı küçük bir işlev. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.