You are not logged in.
Hi,
I have roc stream working as per the wiki. I have a user on another computer (let's call it DAC) which is specifically used to stream any audio via pipewire from other computers.
The problem is that pipewire does not start at boot. I can see pipewire.socket is enabled, but apparently connecting to the roc stream ports is not enough to trigger starting pipewire. I need to run (once) 'systemctl --user start pipewire', and roc streaming will work.
Now I could automate this, for example put that in crontab, or ssh (with specific keys) from the other computer(s) to restart pipewire. But these feel hacky (but do work, at least the ssh way). I have enabled linger for the user loading the roc-source.
What is the most sane way to start pipewire for a user, without logging in the user? (technically, the ssh method is logging in the user momentarily, I'm not even sure starting from crontab will work... ?)
Or, if this is a wrong use case - how would you create a roc stream host? I would like to preserve abilities to log in to the computer occasionally as another user and still use audio normally (running several user instances of pipewire seems to work fine).
Last edited by Wild Penguin (2025-12-14 00:32:11)
Offline
I have enabled linger for the user loading the roc-source.
Yes, this is the 1st step.
Then enable for this user the pipewire service for auto-start:
systemctl --user enable pipewiresystemd user unit handling es explained here https://wiki.archlinux.org/title/Systemd/User.
I have this working for another service on a remote machine, no ssh is required to start the service then.
I don't know if this is enough for roc/pipewire/sound to work.
Next step, inspect the log for pipewire for the specified roc user:
systemctl --user status pipewire
sudo journalctl --user-unit pipewireOffline