私はサービスを追加しましたシステム(私はこれをパイ3) の場合は次のようになります。
[Unit]
Description=Oral-B BLE scanner service
Wants=network-online.target
After=network-online.target
StartLimitBurst=10
StartLimitIntervalSec=10
Requires=bluetooth.target
[Service]
Type=simple
WorkingDirectory=/home/pi/scripts
ExecStart=/home/pi/scripts/scanOralB.py
Restart=always
RestartSec=10
[Install]
WantedBy=network-online.target
上記のファイルへのシンボリックリンクを追加しましたシステム。私もサービスを有効にしました。念のため確認しました。
pi@raspberrypi:~ $ systemctl is-enabled scanOralB.service
enabled
再起動してステータスを確認すると、次のようになります。
pi@raspberrypi:~ $ sudo systemctl status scanOralB.service
* scanOralB.service - Oral-B BLE scanner service
Loaded: loaded (/home/pi/scripts/scanOralB.service; enabled; vendor preset: enabled)
Active: inactive (dead)
サービスを手動で起動すると、問題なく動作します。起動後にサービスが開始されない理由を説明できますか?追加の出力は表示されません。ジャーナルctlどちらか。
答え1
開始されないのは、開始されるものによって望まれていないからです。
[インストール] WantedBy=ネットワークオンライン.ターゲット上記のファイルへのシンボリックリンクを追加しましたシステム。
それらのほとんどは間違っています。
- ユニットファイルは置いたで
/etc/systemd/system
。シンボリック リンクは systemd によって独自に解釈され、従来のファイルシステムのセマンティクスを持ちません。また、/lib/systemd/system
パッケージから取得されない手書きのユニット ファイルを配置する場所ではありません。 - ユニット ファイルは、ブートストラップ時に実際に起動されるものによって要求される必要があります。
network-online.target
通常は要求されません。multi-user.target
が通常の選択です。graphical.target
が別のものです。