[systemd-devel] PAMName=login, systemctl stop
Tomasz Pala
gotar at polanet.pl
Fri Aug 4 15:08:26 UTC 2023
On 03.07.2023 14:17, Lennart Poettering wrote:
> logind's session ID you'll find in the $XDG_SESSION_ID env var.
>
> you can use this to kill your own session:
>
> loginctl kill-session $XDG_SESSION_ID
>
> if you want to know which systemd unit your process belongs to use:
>
> ps --pid $$ -o unit=
I was struggling with the same problem a few months ago and came up with (bear up):
ExecStop=/bin/sh -c "loginctl kill-session --signal SIGTERM `systemctl -n1 -o export status \"$MAINPID\" | grep _SYSTEMD_SESSION | cut -f2 -d=`"
ExecStopPost=/bin/sh -c "loginctl terminate-session `systemctl -n1 -o export status \"$MAINPID\" | grep _SYSTEMD_SESSION | cut -f2 -d=`"
This worked well (I'm not using it though, it was only some test setup),
but I was wondering if systemd couldn't help somehow, e.g. exposing
$_SYSTEMD_SESSION variable directly;
ExecStop=loginctl kill-session --signal SIGTERM $_SYSTEMD_SESSION
doesn't look so scary anymore. Another idea was to ask for new feature:
KillMode=session
which could do exactly this.
--
Tomasz Pala <gotar at pld-linux.org>
More information about the systemd-devel
mailing list