如何使用复杂参数启动 systemd 服务?

如何使用复杂参数启动 systemd 服务?

我想使用 USB 摄像头从 Raspberry Pi 传输视频mjpg-streamer。这是从 bash shell 启动它的命令行:

./mjpg_streamer  -i "./input_uvc.so" -o "./output_http.so -w ./www -p 8000"

这很好用。

我已经创建了服务文件/lib/systemd/system/mjpg-streamer.service

[Unit]
Description=USB camera streaming service
Requires=network-online.target
After=network-online.target

[Service]
Environment=LD_LIBRARY_PATH=/home/pi/mjpg-streamer
EnvironmentFile=./mjpg-streamer.conf
ExecStart=/home/pi/mjpg-streamer/mjpg_streamer ${ARG1} ${ARG2}
StandardOutput=null
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

这是我的环境文件/lib/systemd/system/mjpg-streamer.conf

ARG1=-i "./input_uvc.so" 
ARG2=-o "./output_http.so -w ./www -p 8000"

服务已启动,但参数未正确传递。

答案1

我最终选择了托马斯·沃德建议的道路。

ExecStart=/usr/local/bin/mjpg_streamer -i 'input_uvc.so -d /dev/video0' -o 'output_http.so -w /home/pi/mjpg-streamer/www -p 8000'

相关内容