我使用 Gnome 3,上面有 2 个桌面(2 个用户)。两个桌面同时登录,我通过“切换用户”选项在桌面之间导航。
有时,我的其他桌面无法加载,我会通过pkill -KILL -u username
命令终止该用户。
现在,我有更多的用户,但当我尝试时,who
控制台没有显示其他用户。我如何才能看到哪些用户同时登录到 Gnome3?
答案1
尝试:ck-history --last
这将包括通过 Gnome/GDM 登录的用户。我发现像“who”、“w”、“finger”、“last”这样的命令只显示终端登录。
答案2
您可以尝试以下命令:
sudo who -u -d
这应该会显示所有登录的用户 - 甚至是那些进程已死的用户。
答案3
登录用户将运行一个进程gnome-session-ctl
。假设切换用户时该进程仍在运行,因此您可以查找该进程并获取其所有者:
pgrep gnome-session-c | xargs ps u | awk '/gnome-session-ctl/{print $1}' | grep -v gdm
笔记:
- Linux 仅将进程可执行文件名称的 15 个字符直接存储在进程中,因此 pgrep 只能查找
gnome-session-c
。任何更长的内容都需要查找;它ps
会为我们提供该查找结果 - 以及用户名。 - gnome-session-ctl 可以作为另一个进程的参数出现,因此在没有额外过滤的
ps
情况下随意 grepgnome-session-ctl
可能会得到误报。 - 排除
gdm
用户是一种安全措施,以防万一 gdm 启动 ctl 进程 - 您可能不想杀死 gdm!也许有点过头了,但谨慎总比后悔好。 - 请注意,您还可以追踪一些其他 gnome 进程,例如
gdm-x-session
或gdm-session-worker
。