Hi
On Mon, 20 Mar 2023 23:02:20 -0600 Joe Zeff wrote:
Years ago I created a little script to play an .mp3 as a wake-up alarm, but there was a little problem. I have my box set to turn itself back on after a power drop if it was on before, but if it happens late at night, I won't be logged in in the morning, and there wouldn't be any sound.
systemd provides a way to achieve that with:
loginctl enable-linger LOGNAME
From man loginctl:
enable-linger [USER...], disable-linger [USER...] Enable/disable user lingering for one or more users. If enabled for a specific user, a user manager is spawned for the user at boot and kept around after logouts. This allows users who are not logged in to run long-running services. Takes one or more user names or numeric UIDs as argument. If no argument is specified, enables/disables lingering for the user of the session of the caller.
As in addition PipeWire is launched with a user systemd socket/service that should work.
A systemd user manager creates the XDG_RUNTIME_DIR (/run/user/UID) and has this variable in its environment:
systemctl --user show-environment <snip> XDG_RUNTIME_DIR=/run/user/1000