Wie kann ich den gesamten Prozess eines Benutzers beenden?
Wenn ich mache, ps aux
erhalte ich eine Liste von Prozessen mit mehreren Benutzern, und ich möchte zum name1
Beispiel alle Prozesse von Benutzern beenden! Was ist ein Befehl, um das in Ubuntu zu tun?
ubuntu
command-line
process
user15992
quelle
quelle
sudo service the-service-name stop
. DasAntworten:
In diesem Fall ist es ziemlich einfach, mit dem Sie
killall
mehrere Prozesse gleichzeitig beenden oder ein anderes Signal senden können. Eine der "Filter" -Optionen ist der Eigentümer:killall --user name1
quelle
--user
Argument war mir nicht bekannt , danke!killall
z. B. in Solaris Unix alle laufenden Prozesse abgebrochen werden können! Siehe: en.wikipedia.org/wiki/KillallHinzufügen einer weiteren Option, weil niemand sie erwähnt hat und ich sie nicht mag
killall
(die Verwendung auf Solaris kann zu einer Katastrophe führen).pkill
ist tragbarerquelle
killall
in Ubuntu, aber espkill
ist bereits installiert.Identifizieren Sie dann den Benutzer
killall -user <username>
Sie haben einen Bash-Prozess (oder einen ähnlichen Prozess), der mit dem Beenden ihrer Anmeldesitzung verbunden ist und die Sitzung beendet.
Versuchen Sie, sich einen besseren Überblick über die Aktivitäten eines Benutzers zu verschaffen
pstree <username>
quelle
--user
Installieren Sie
slay
:Eignung installieren töten
Dann ausstellen
slay some-user
.Beachten Sie, dass Sie Ihren Computer unbrauchbar machen können, wenn Sie Inhalte für Benutzer entfernen, für die Sie den Zweck nicht kennen (bis Sie ihn neu starten).
Wenn Sie Slay wirklich nicht installieren möchten:
(warten Sie ein wenig)
quelle
awk
kann sich etwas schnappen. Keine Notwendigkeit zu tungrep smth | awk
, weil Sie nurawk '/smth/{...}'
stattdessen verwenden können.killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};