Systemd 服务无法在启动时运行

Systemd 服务无法在启动时运行

我有一个 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)

任何人都可以建议任何更改来帮助实现此功能吗?

相关内容