On Fri, 2026-06-12 at 14:56 +0100, Carlos Alberto Lopez Perez via
lists.openembedded.org wrote:
> The logind.conf config snippet installed by this recipe unconditionally
> sets KillUserProcesses=yes, so logind terminates the whole session scope
> when a login session ends. Among other things this kills detached screen
> or tmux sessions on logout, which is surprising on interactive development
> images, and there is currently no recipe-level way to turn the policy off.
> 
> Add a 'kill-user-processes' PACKAGECONFIG option, enabled by default,
> so behaviour is unchanged unless a distro or image opts out with:
> 
>   PACKAGECONFIG:remove:pn-systemd-conf = "kill-user-processes"

Using :remove should be reserved for exceptional cases, not recommended
as the normal way to configure things. So perhaps we need to invert this
and have a "no-kill-user-processes" PACKAGECONFIG.

> 
> Signed-off-by: Carlos Alberto Lopez Perez <[email protected]>
> ---
>  meta/recipes-core/systemd/systemd-conf/logind.conf | 2 +-
>  meta/recipes-core/systemd/systemd-conf_1.0.bb      | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-core/systemd/systemd-conf/logind.conf 
> b/meta/recipes-core/systemd/systemd-conf/logind.conf
> index bf7f6920fa..25f01f3fb6 100644
> --- a/meta/recipes-core/systemd/systemd-conf/logind.conf
> +++ b/meta/recipes-core/systemd/systemd-conf/logind.conf
> @@ -1,2 +1,2 @@
>  [Login]
> -KillUserProcesses=yes
> +KillUserProcesses=@KILL_USER_PROCESSES@
> diff --git a/meta/recipes-core/systemd/systemd-conf_1.0.bb 
> b/meta/recipes-core/systemd/systemd-conf_1.0.bb
> index 60066cd60a..55bbeb69eb 100644
> --- a/meta/recipes-core/systemd/systemd-conf_1.0.bb
> +++ b/meta/recipes-core/systemd/systemd-conf_1.0.bb
> @@ -10,8 +10,9 @@ REQUIRED_DISTRO_FEATURES += "usrmerge"
>  
>  PE = "1"
>  
> -PACKAGECONFIG ??= "dhcp-ethernet"
> +PACKAGECONFIG ??= "dhcp-ethernet kill-user-processes"
>  PACKAGECONFIG[dhcp-ethernet] = ""
> +PACKAGECONFIG[kill-user-processes] = ""
>  
>  SRC_URI = "\
>      file://journald.conf \
> @@ -28,6 +29,9 @@ do_install() {
>       install -D -m0644 ${S}/logind.conf 
> ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf
>       install -D -m0644 ${S}/system.conf 
> ${D}${systemd_unitdir}/system.conf.d/00-${PN}.conf
>  
> +        KILL_USER_PROCESSES="${@bb.utils.contains('PACKAGECONFIG', 
> 'kill-user-processes', 'yes', 'no', d)}"
> +        sed -i "s/@KILL_USER_PROCESSES@/${KILL_USER_PROCESSES}/" 
> ${D}${systemd_unitdir}/logind.conf.d/00-${PN}.conf
> +

Note that KillUserProcesses=yes is the built-in default so we don't need
to set that in a logind.conf.d file. To disable this at systemd build
time we can add `-Ddefault-kill-user-processes=false` to EXTRA_OEMESON.
So, I think we should handle this in systemd instead of systemd-conf and
drop the logind.conf file from systemd-conf completely.

systemd-conf should remain fairly lightweight, we don't want to turn all
systemd runtime options into PACKAGECONFIGs for systemd-conf or things
will get out of hand.

Best regards,

-- 
Paul Barker

Attachment: signature.asc
Description: This is a digitally signed message part

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#238828): 
https://lists.openembedded.org/g/openembedded-core/message/238828
Mute This Topic: https://lists.openembedded.org/mt/119773876/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to