Bunuh semua proses pengguna di Ubuntu?

20

Bagaimana cara membunuh semua proses dari satu pengguna?

Ketika saya membuat ps auxsaya mendapatkan daftar proses dengan beberapa pengguna, dan saya ingin membunuh semua proses pengguna name1misalnya! Apa perintah untuk melakukannya di Ubuntu?

pengguna15992
sumber
kemungkinan duplikat dari Bagaimana cara membunuh semua proses pengguna menggunakan UID mereka
Gilles 'SO- stop being evil'
1
Jika pengguna adalah orang sungguhan, ini mungkin bukan ide yang baik. Saya juga berpikir Anda ingin membunuh proses untuk menghemat waktu. Ini ide yang sangat buruk. Misalnya, layanan di Ubuntu dapat dihentikan penggunaannya sudo service the-service-name stop. Proses pembunuhan dapat meninggalkan file yang rusak, database, dll.
tiktak

Jawaban:

27

Dalam hal ini, sangat sederhana, Anda dapat menggunakan killalluntuk membunuh, atau mengirim sinyal lain, ke banyak proses sekaligus. Salah satu opsi "pemfilteran" adalah pemilik:killall --user name1

njsg
sumber
Saya tidak menyadari --userargumennya, terima kasih!
jmtd
4
Perlu dicatat bahwa killalldalam mis Solaris Unix membunuh semua proses yang berjalan bisa! Lihat: en.wikipedia.org/wiki/Killall
donothingsuccessfully
Ini pada dasarnya dikeluarkan di ubuntu 18.
Manohar Reddy Poreddy
14

Menambahkan opsi lain karena tidak ada yang menyebutkannya, dan saya tidak suka killall(menggunakannya pada solaris dapat menyebabkan bencana).

pkill lebih portabel

pkill -u username
Patrick
sumber
Saya tidak menemukan killalldi Ubuntu, tetapi pkillsudah diinstal.
david.perez
2

Identifikasi pengguna, lalu killall -user <username>

Mereka akan memiliki proses bash (atau serupa) yang terkait dengan pembunuhan sesi login mereka yang akan membunuh sesi mereka.

Untuk mendapatkan gambaran umum yang berpotensi lebih baik tentang apa yang dilakukan pengguna - coba pstree <username>

SuperBOB
sumber
Anda memerlukan dua tanda hubung sebelum pengguna misalnya--user
jmtd
1

Pasang slay:

aptitude menginstal membunuh

Lalu masalah slay some-user.

Ketahuilah bahwa jika Anda mematikan hal-hal untuk pengguna yang Anda tidak tahu tujuannya, Anda dapat membuat mesin Anda tidak dapat digunakan (sampai Anda me-restart).

Jika Anda benar-benar tidak ingin menginstal slay:

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

(tunggu sebentar)

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
jmtd
sumber
1
Btw awkdapat menangkap sesuatu itu sendiri. Tidak perlu dilakukan grep smth | awk, karena Anda bisa menggunakannya saja awk '/smth/{...}'.
buru
Ini adalah fungsi kecil yang berguna untuk Anda. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson