Как убить весь процесс одного пользователя?
Когда я делаю, ps aux
я получаю список процессов с несколькими пользователями, и я хочу, например, убить весь процесс пользователя name1
! Что за команда делает это в Ubuntu?
ubuntu
command-line
process
user15992
источник
источник
sudo service the-service-name stop
. ПроцессыОтветы:
В этом случае все довольно просто, вы можете использовать,
killall
чтобы убить или отправить любой другой сигнал сразу нескольким процессам. Один из вариантов «фильтрации» - это владелец:killall --user name1
источник
--user
аргументе, спасибо!killall
например, в Solaris Unix убивает все запущенные процессы, которые он может! См .: en.wikipedia.org/wiki/KillallДобавление другого варианта, потому что никто не упомянул об этом, и я не люблю
killall
(использование его на солярисе может привести к катастрофе).pkill
более портативныйисточник
killall
в Ubuntu, ноpkill
уже установлен.Определите пользователя, затем
killall -user <username>
У них будет процесс bash (или аналогичный), связанный с их уничтожением сеанса входа в систему, который уничтожит их сеанс.
Чтобы получить потенциально лучший обзор того, что делает пользователь - попробуйте
pstree <username>
источник
--user
Установить
slay
:способность установить убить
Тогда выпустите
slay some-user
.Имейте в виду, что если вы убьете вещи для пользователей, для которых вы не знаете цели, вы можете сделать вашу машину непригодной для использования (до перезагрузки).
Если вы действительно не хотите устанавливать slay:
(Подожди немного)
источник
awk
может сам что-то grep. Нет необходимости делатьgrep smth | awk
, потому что вы можете использовать толькоawk '/smth/{...}'
вместо этого.killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};