Jak zabić cały proces jednego użytkownika?
Kiedy to robię ps aux
, otrzymuję listę procesów z kilkoma użytkownikami i chcę na przykład zabić cały proces użytkownika name1
! Jakie polecenie ma to zrobić w Ubuntu?
ubuntu
command-line
process
użytkownik15992
źródło
źródło
sudo service the-service-name stop
. Procesy zabijania mogą pozostawić uszkodzone pliki, bazy danych itp.Odpowiedzi:
W tym przypadku jest to dość proste, możesz użyć
killall
do zabicia lub wysłania dowolnego innego sygnału do wielu procesów jednocześnie. Jedną z opcji „filtrowania” jest właściciel:killall --user name1
źródło
--user
kłótni, dzięki!killall
np. W Solarisie Unix zabija wszystkie działające procesy, jakie potrafi! Zobacz: en.wikipedia.org/wiki/KillallDodanie kolejnej opcji, ponieważ nikt o niej nie wspominał, a ja nie lubię
killall
(używanie jej na solaris może spowodować katastrofę).pkill
jest bardziej przenośnyźródło
killall
w Ubuntu, alepkill
jest już zainstalowany.Następnie zidentyfikuj użytkownika
killall -user <username>
Będą mieli bash (lub podobny) proces związany z zabijaniem sesji logowania, który zabije ich sesję.
Aby uzyskać potencjalnie lepszy przegląd tego, co robi użytkownik - spróbuj
pstree <username>
źródło
--user
Zainstaluj
slay
:aptitude install slay
Potem problem
slay some-user
.Pamiętaj, że jeśli zabijasz rzeczy dla użytkowników, dla których nie znasz celu, możesz uniemożliwić korzystanie z komputera (do momentu ponownego uruchomienia).
Jeśli naprawdę nie chcesz instalować slaya:
(Poczekaj chwilę)
źródło
awk
może coś zepsuć. Nie musisz tego robićgrep smth | awk
, bo możeszawk '/smth/{...}'
zamiast tego użyć .killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};