从命令行注销其他用户

Isa*_*iah 87 command-line users

有时,当有太多用户登录时,由于可用 RAM 量不足,它会导致我的计算机变得非常缓慢和滞后。我希望能够从命令行快速注销其他用户,而不是手动切换到每个用户并将其注销。

这可能吗?

hhl*_*hlp 93

这是一个答案

who -u
Run Code Online (Sandbox Code Playgroud)

给你PID

然后您可以终止用户会话。

kill "pid"
Run Code Online (Sandbox Code Playgroud)

  • 这有效,但有一些奇怪的副作用。 (4认同)
  • @Oli 例如 GDM 重新启动,并尝试切换到我杀死的用户不起作用。 (4认同)
  • @DoR ...哪些是..? (3认同)
  • @AlvinR​​ow 如果你执行`ps auxf`,那么你会注意到(最左边的列有有效的用户名)这个方法不会杀死当前用户执行的所有进程(所以*可能*你没有注销) . @precise 的方法似乎解决了这个问题,尽管我对发送`SIGKILL` 感到不舒服。 (2认同)

pre*_*ise 40

您可以使用who来检查哪些用户已登录:

who
Run Code Online (Sandbox Code Playgroud)

您可以通过向KILL用户进程发送信号来注销用户:

sudo pkill -KILL -u <username>
Run Code Online (Sandbox Code Playgroud)

(与 相同sudo pkill -9 -u <username>

例子:

sudo pkill -9 -u guest-2Rw4Lq
Run Code Online (Sandbox Code Playgroud)

(杀死一个名为 的访客会话用户guest-2Rw4Lq

(荣誉给pbhj):如果你被锁在一个控制台,使用Ctrl+ Alt+F7找回的GUI。

  • 这对我来说效果最好。只需运行“kill“pid””,用户的大量进程仍在运行,这将它们全部杀死。 (2认同)

adm*_*adm 7

who -u


> adam     ttys000  Aug  4 09:22   .       91228 
Run Code Online (Sandbox Code Playgroud)

然后

sudo kill 'PID number'
sudo kill 91228
Run Code Online (Sandbox Code Playgroud)

PID(进程 ID)是用户读数末尾的四位或五位数字 (91228)