Alle Prozesse der Benutzer in Ubuntu beenden?

20

Wie kann ich den gesamten Prozess eines Benutzers beenden?

Wenn ich mache, ps auxerhalte ich eine Liste von Prozessen mit mehreren Benutzern, und ich möchte zum name1Beispiel alle Prozesse von Benutzern beenden! Was ist ein Befehl, um das in Ubuntu zu tun?

user15992
quelle
1
Wenn die Benutzer echte Personen sind, ist dies wahrscheinlich keine gute Idee. Ich denke auch, dass Sie Prozesse beenden möchten, um Zeit zu sparen. Das ist eine sehr schlechte Idee. Zum Beispiel können die Dienste in Ubuntu gestoppt werden sudo service the-service-name stop. Das
Beenden von

Antworten:

27

In diesem Fall ist es ziemlich einfach, mit dem Sie killallmehrere Prozesse gleichzeitig beenden oder ein anderes Signal senden können. Eine der "Filter" -Optionen ist der Eigentümer:killall --user name1

njsg
quelle
Das --userArgument war mir nicht bekannt , danke!
jmtd
4
Es ist zu beachten, dass killallz. B. in Solaris Unix alle laufenden Prozesse abgebrochen werden können! Siehe: en.wikipedia.org/wiki/Killall
donothingsuccessfully
Dies im Wesentlichen auf Ubuntu 18 abgemeldet.
Manohar Reddy Poreddy
14

Hinzufü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 tragbarer

pkill -u username
Patrick
quelle
Ich finde es nicht killallin Ubuntu, aber es pkillist bereits installiert.
david.perez
2

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>

SuperBOB
quelle
Sie benötigen zwei Bindestriche, bevor der Benutzer z. B.--user
jmtd
1

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:

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill

(warten Sie ein wenig)

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
jmtd
quelle
1
Übrigens awkkann sich etwas schnappen. Keine Notwendigkeit zu tun grep smth | awk, weil Sie nur awk '/smth/{...}'stattdessen verwenden können.
Ansturm
Hier ist eine praktische kleine Funktion für Sie. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson