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是另一个。

相关内容