Eu tive que adicionar uma regra do udev para detectar a câmera, /etc/udev/rules.d/webcam.rules
KERNEL=="video0", SYMLINK="video1", TAG+="systemd"
KERNEL=="video1", SYMLINK="video1", TAG+="systemd"
Em seguida, fiz as seguintes alterações em meu arquivo de serviço, /lib/systemd/system/streamer.service
[Unit]
Description=Webcam Service
BindsTo=dev-video1.device
After=dev-video1.device
[Service]
ExecStart=/usr/bin/streamer
A razão para isto está na manpage do systemd.unit:
"Quando usado em conjunto com After = na mesma unidade, o comportamento de BindsTo = é ainda mais strong. Neste caso, a unidade ligada a estritamente tem que estar no estado ativo para que esta unidade também esteja no estado ativo." [Instalar] WantedBy = multi-user.target