systemd 服務在啟動後最終處於「不活動(死亡)」狀態

systemd 服務在啟動後最終處於「不活動(死亡)」狀態

我已將我的服務添加到系統(我正在運行它PI3),它看起來像這樣:

[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

我在上面的文件中添加了一個符號鏈接/lib/systemd/系統。我也啟用了該服務。只是為了確定我檢查過。

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)

如果我手動啟動該服務,它就可以正常工作。有人可以解釋為什麼啟動後服務沒有啟動嗎?我沒有得到額外的輸出日誌控制任何一個。

答案1

它沒有被啟動,因為任何啟動的東西都不需要它。

[安裝]
WantedBy=網路在線.target
我在上面的文件中添加了一個符號鏈接/lib/systemd/系統

幾乎所有這些都是錯誤的。

  • 單元文件應該是放置/etc/systemd/system。符號連結由 systemd 進行特殊解釋,並且不具有傳統的檔案系統語義。並且/lib/systemd/system不是非來自包的手寫單元文件的位置。
  • 該單元檔案應該是在引導程式中實際啟動的東西所需要的。 network-online.target通常不會。 multi-user.target是通常的選擇。 graphical.target是另一個。

相關內容