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>
29 lines
854 B
Text
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
|