systemd サービスは起動後に「非アクティブ (デッド)」状態になります

systemd サービスは起動後に「非アクティブ (デッド)」状態になります

私はサービスを追加しましたシステム(私はこれをパイ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が別のものです。

関連情報