logind: emit PropertiesChanged when lingering is enabled/disabled

Cockpit's podman plugin needs to know the lingering status so the UI can
advertise enabling `podman-restart` (which depends on lingering to
work). Currently it relies on watching `/var/lib/systemd/linger/${user}`
but that isn't a public API.

Related: #22244
This commit is contained in:
Jelle van der Waa
2025-10-09 09:39:45 +02:00
committed by Lennart Poettering
parent 03936a55a1
commit c6ebb98e3c
4 changed files with 7 additions and 3 deletions
+4 -1
View File
@@ -590,7 +590,10 @@ testcase_list_users_sessions_seats() {
assert_eq "$(loginctl list-users --no-legend | awk '$2 == "logind-test-user" { print $3 }')" no
assert_eq "$(loginctl list-users --no-legend | awk '$2 == "logind-test-user" { print $4 }')" active
loginctl enable-linger logind-test-user
systemd-run --quiet --service-type=notify --unit=test-linger-signal-wait --pty \
-p Environment=SYSTEMD_LOG_LEVEL=debug \
-p ExecStartPost="loginctl enable-linger logind-test-user" \
busctl --timeout=30 wait "/org/freedesktop/login1/user/_$(id -ru logind-test-user)" org.freedesktop.DBus.Properties PropertiesChanged | grep -qF '"Linger" b true'
assert_eq "$(loginctl list-users --no-legend | awk '$2 == "logind-test-user" { print $3 }')" yes
for s in $(loginctl list-sessions --no-legend | grep tty | awk '$3 == "logind-test-user" { print $1 }'); do