有人在 systemd-logind 会话中赋予“Leader”进程重要性吗?

有人在 systemd-logind 会话中赋予“Leader”进程重要性吗?

会话中的第一个进程pam_systemd称为Leader。例如它可以被杀死loginctl --kill-who=leader kill-session SESSION_ID

pam_systemd将领导者置于会话范围单元中。有趣的是,如果这是 systemd 服务的主进程,则意味着该进程离开该服务的 cgroup; systemd 明确支持这一点。然而,领导者也可以选择逃避会话范围。

User=root
PAMName=i-wanna-be-a-systemd-logind-session
ExecStart=/usr/bin/systemd-run --scope --unit=not-a-session.scope sleep 600

这应该留下一个(sd-pam)在会话范围内调用的子进程,该子进程在父进程终止时运行 pam_session_close() 。因此会话范围单元将保持活动状态。

我认为对于非特权用户来说这也应该是可能的systemd-run --user --scope

如果用户没有明确提出有关Leader例如 with 的请求loginctl,这些恶作剧还有什么意义吗?我真正想知道的是这是否会破坏某些东西。

Leader值是否真的有什么用途,还是主要用于显示目的?是否有任何已知的支持理由或用例loginctl --kill-who=leader kill-session SESSION_ID可以阐明这个问题?

相关内容