起動時にSystemdサービスは実行されません。

起動時にSystemdサービスは実行されません。

ボリュームポテンショメータを継続的に監視し、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)

この機能を実装するのに役立つ変更を提案できる人はいますか?

ベストアンサー1

おすすめ記事