从命令行注销其他用户


67

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

这可能吗?

Answers:


68

这是一个答案

who -u

给你的PID

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

kill "pid"

这有效,但有一些奇怪的副作用。
以赛亚书

@DoR .....是什么?
奥利(Oli)

4
@Oli,例如GDM重新启动,并尝试切换到我杀死的无法正常工作的用户。
以赛亚书

1
@AlvinR​​ow如果执行ps auxf,然后你注意到(最左边的列有有效的用户名),这种方法并不能杀死所有被当前用户执行的过程(所以可能你不会注销)。@precise的方法似乎解决了这个问题,尽管我对send不满意SIGKILL
Dor

我很惊讶没有这样的东西,shutdown因此它可以在强行注销之前发出警告(允许保存工作)。可以选择切换到登录名,就像更改会话一样,而让用户会话在后台运行。
pbhj

28

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

who

您可以通过以下方式将KILL信号发送到用户进程来注销用户:

sudo pkill -KILL -u <username>

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

例:

sudo pkill -9 -u guest-2Rw4Lq

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


这对我来说效果最好。仅运行kill "pid"一次,用户仍在运行就留下了无数的进程,这杀死了所有进程。
thebaer 2015年

1
为什么SIGKILL而不是默认值SIGTERM?该SIGKILL不是健康..
多尔

sudo pkill -KILL -u <username>对我来说,我转到了第一个控制台会话;我以为它杀死了我当前的会话,但是ctrl + alt + F7使我回到了当前的图形会话。
pbhj

3
who -u


> adam     ttys000  Aug  4 09:22   .       91228 

然后

sudo kill 'PID number'
sudo kill 91228

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


1
您的图片没有显示四位数?
德隆兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.