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?



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


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

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>


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.