我注意到,konsole
通过该运行时krunner
,id
不会返回任何其他组。konsole
从激活器栏菜单启动时,id
返回正确的组。
在我看来,会话处理有些混乱,因为两种情况下的env
结果也大不相同。这是全新的 Arch Linux 安装,我认为我弄乱了一些配置,而这些配置我很可能还没有接触过。
进程树如屏幕截图所示:
是孩子的人plasmashell
很好,systemd
不是孩子的人
因此,正如答案中所述,运行的进程是krunner
使用用户空间生成的systemd
,但问题是为什么不为他们设置额外的用户组?。是不是我忘记设置某些配置选项了?
什么是启动用户空间 systemd,也许这里存在问题?
的内容/etc/systemd/user.conf
被全部注释掉
答案1
组是可继承的。如果您更改了组,现有会话进程将继续使用旧组分叉新进程。如果您更改了组并退出,可能仍有一些 KDE 组件(例如可能kded
或dbus-daemon
)未立即关闭并且实际上在后续登录中重新使用,因此如果应用程序通过这些组件间接启动,它们将继续继承旧组。
具体来说,KDE 和 GNOME 可能会通过每个用户的systemd --user
服务管理器启动应用程序——只要您有,该管理器就会在后台运行(与任何特定会话无关)。任何会话,并在所有会话关闭后约 10 秒退出。dbus-daemon
只要由 systemd 管理,情况也是如此。
注销,然后等待约 30 秒再重新登录。或者,登录控制台 (tty) 并运行ps axf
以检查您可能正在运行的剩余进程。(如果 systemd 管理器正在运行太多剩余的 KDE 进程,systemctl --user exit
则应将其清理。)