mediapi/systemd/mediapi-mpv.service.template
Jean-Michel Tremblay db06ae252d mpv unit: wait for udev/DRM devices before starting
Cold-boot race could leave mpv running but not rendering to HDMI (console
stays visible) even though the same command works when run manually later.
Order the unit after systemd-udev-settle so /dev/dri/* exists first.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 22:19:52 -04:00

29 lines
854 B
Text

[Unit]
Description=mpv persistent player (DRM/HDMI output, JSON IPC)
# Wait until udev has settled so the DRM/HDMI devices (/dev/dri/*) exist
# before mpv tries to grab the display. Without this, a cold-boot race can
# leave mpv running but never rendering to HDMI (you see the console instead),
# even though the exact same command works when run by hand later.
After=local-fs.target systemd-udev-settle.service
Wants=systemd-udev-settle.service
[Service]
Type=simple
User=${MEDIAPI_USER}
SupplementaryGroups=video render
RuntimeDirectory=mediapi
RuntimeDirectoryMode=0770
ExecStart=/usr/bin/mpv \
--idle=yes \
--input-ipc-server=/run/mediapi/mpv.sock \
--vo=gpu-next --gpu-context=drm \
--hwdec=auto-safe \
--fullscreen \
--no-terminal \
--keep-open=no \
--ao=alsa
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target