build: add systemd autostart for the receiver
Ship systemd/screencast-receiver.service, a template the install script substitutes (binary path, run user) and enables so the receiver starts at boot after the network and avahi-daemon, with restart-on-failure and a raised start limit for slow-booting boards. SIGTERM gives the graceful shutdown that withdraws the mDNS announcement — systemctl stop never triggers the stale-record trap that kill -9 does. Headless consoles render via KMSDRM (the script adds the run user to video/render/input); desktop autologin sessions uncomment two documented Environment lines. The install script gains SC_RECEIVER_SERVICE=0 to opt out. Validated: systemd-analyze verify on the substituted unit (only the expected missing /usr/local/bin path on this dev machine), and a live lifecycle test as a user unit: the service-managed receiver announced itself (--discover found it), systemctl stop produced a clean exit (Result=success, no restart) and the mDNS announcement was withdrawn immediately.
This commit is contained in:
@@ -70,6 +70,26 @@ records for that service name until they expire (~75 min), making resolution
|
||||
time out for every peer. If that happens, `systemctl restart avahi-daemon`
|
||||
clears it. Always stop screencast with Ctrl-C (SIGTERM).
|
||||
|
||||
## Receiver as a systemd service (autostart)
|
||||
|
||||
`scripts/install-receiver.sh` installs and enables
|
||||
`screencast-receiver.service` (see `systemd/screencast-receiver.service`).
|
||||
It starts at boot after the network and avahi-daemon, and restarts on
|
||||
failure. On a headless console SDL renders via KMSDRM; on a desktop
|
||||
autologin, edit `/etc/systemd/system/screencast-receiver.service` and
|
||||
uncomment the Environment lines for `XDG_RUNTIME_DIR`/`WAYLAND_DISPLAY`.
|
||||
|
||||
```sh
|
||||
systemctl status screencast-receiver # is it running?
|
||||
journalctl -u screencast-receiver -f # follow logs
|
||||
sudo systemctl stop screencast-receiver # graceful; withdraws mDNS
|
||||
sudo systemctl disable --now screencast-receiver # turn autostart off
|
||||
```
|
||||
|
||||
Verified behavior: `systemctl stop` results in a clean exit (success,
|
||||
no restart) and the mDNS announcement is withdrawn — senders stop finding
|
||||
the receiver immediately.
|
||||
|
||||
## Sender / receiver loopback (Phase 5, manual)
|
||||
|
||||
Two terminals on the same desktop session:
|
||||
|
||||
Reference in New Issue
Block a user