볼륨 전위차계를 지속적으로 모니터링하고 subprocess.check_output()을 사용하여 pactl 명령을 실행하여 오디오 볼륨을 조정하는 Python 스크립트가 있습니다.
명령줄에서 실행하면 이 모든 것이 잘 작동합니다.
시작 시 백그라운드에서 스크립트가 실행되기를 원했기 때문에 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)
이 기능을 구현하는 데 도움이 되는 변경 사항을 제안할 수 있는 사람이 있습니까?