从 krunner (systemd --user) 退出时没有用户组

从 krunner (systemd --user) 退出时没有用户组

我注意到,konsole通过该运行时krunnerid不会返回任何其他组。konsole从激活器栏菜单启动时,id返回正确的组。

在我看来,会话处理有些混乱,因为两种情况下的env结果也大不相同。这是全新的 Arch Linux 安装,我认为我弄乱了一些配置,而这些配置我很可能还没有接触过。

进程树如屏幕截图所示:

进程树

是孩子的人plasmashell很好,systemd不是孩子的人

因此,正如答案中所述,运行的进程是krunner使用用户空间生成的systemd,但问题是为什么不为他们设置额外的用户组?。是不是我忘记设置某些配置选项了?

什么是启动用户空间 systemd,也许这里存在问题?

的内容/etc/systemd/user.conf被全部注释掉

答案1

组是可继承的。如果您更改了组,现有会话进程将继续使用旧组分叉新进程。如果您更改了组并退出,可能仍有一些 KDE 组件(例如可能kdeddbus-daemon)未立即关闭并且实际上在后续登录中重新使用,因此如果应用程序通过这些组件间接启动,它们将继续继承旧组。

具体来说,KDE 和 GNOME 可能会通过每个用户的systemd --user服务管理器启动应用程序——只要您有,该管理器就会在后台运行(与任何特定会话无关)。任何会话,并在所有会话关闭后约 10 秒退出。dbus-daemon只要由 systemd 管理,情况也是如此。

注销,然后等待约 30 秒再重新登录。或者,登录控制台 (tty) 并运行ps axf以检查您可能正在运行的剩余进程。(如果 systemd 管理器正在运行太多剩余的 KDE 进程,systemctl --user exit则应将其清理。)

相关内容