我有一个 python 脚本,它不断监视音量电位计并使用 subprocess.check_output() 运行 pactl 命令来调整音频音量。
当在命令行上运行时,这一切都可以很好地工作。
我希望脚本在启动时在后台运行,因此决定创建一个 systemd 服务。
我的服务文件如下:
[Unit]
Description=Knob monitor
After=multi-user.target
[Service]
User=dave
Type=simple
ExecStart=/usr/bin/python /home/dave/dev/serial/knob_monitor.py
Restart=always
[Install]
WantedBy=multi-user.target
这可以正常运行脚本,但无法执行 pactl 命令。
我读过将服务文件移动到 /usr/lib/systemd/user 文件夹并删除用户引用可能会有所帮助。
我已经做到了这一点并使用了以下命令:
systemctl --user daemon reload
systemctl --user enable knob_monitor.service
systemctl --user start knob_monitor.service
这有效并且 pactl 按预期运行!虽然它似乎没有在启动时运行:( 检查状态时出现以下错误:
systemctl --user status knob_monitor.service
knob_monitor.service - Knob monitor
Loaded: loaded (/usr/lib/systemd/user/knob_monitor.service; enabled; vendor preset: enabled)
Active: inactive (dead)
任何人都可以建议任何更改来帮助实现此功能吗?