セッションの最初のプロセス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
明示的に要求しない場合、loginctl
これらのいたずらは意味がありますか?私が本当に知りたいのは、これが何かを破るかです。
値Leader
は実際にどの目的に使用されますか、それとも主に表示目的に使用されますか?loginctl --kill-who=leader kill-session SESSION_ID
この問題を明らかにする既知のサポート理由やユースケースはありますか?