如何列出所有登录 Gnome 3 的用户?

如何列出所有登录 Gnome 3 的用户?

我使用 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-sessiongdm-session-worker

相关内容