Как завершить все процессы одного пользователя?
Когда я делаю, ps aux
я получаю список процессов с несколькими пользователями, и я хочу убить все процессы пользователя name1
, например. Какая команда делает это в Ubuntu?
решение1
В этом случае все довольно просто, можно использовать killall
для kill или отправки любого другого сигнала сразу нескольким процессам. Один из вариантов "фильтрации" — владелец:killall --user name1
решение2
Добавляю еще одну опцию, потому что ее никто не упомянул, и она мне не нравится killall
(ее использование на Solaris может привести к катастрофе).
pkill
более портативен
pkill -u username
решение3
Установить slay
:
aptitude установить убить
Затем выдайте slay some-user
.
Имейте в виду, что если вы уничтожите что-то для пользователей, не зная, зачем это нужно, вы можете сделать свой компьютер непригодным для использования (пока вы не перезагрузите его).
Если вы действительно не хотите устанавливать slay:
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
решение4
В соответствии с man kill
:
kill -9 -1
Kill all processes you can kill.
Чтобы применить его к другому пользователю:
su -l username kill -9 -1