进一步阅读

进一步阅读

我们为 systemd 编写了一个服务脚本,用于在系统启动时启动可执行文件。服务脚本每隔 90 秒重新启动一次,保持一致。如果我们禁用该服务并运行可执行文件,它将按预期运行。我们在 Intel Edison 上使用 Yocto Linux。

这是我们的启动脚本:

[Unit]
Description=patsuit
After=network-online.target
Wants=network-online.target

[Service]
WorkingDirectory=/home/root
Type=forking
ExecStart=/bin/PatDownSuitFirmware/PatDown_V3
User=root
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

答案1

您的准备协议不匹配。您已经告诉 systemd 您的程序分叉了一个子进程,然后退出父进程以表明它已准备好。但事实上你的程序并没有这样做。由于它没有声明在 90 秒(默认启动超时)内准备就绪,因此 systemd 判定您的服务已失败。失败的服务会让一切都消失。由于on-failure,您失败的服务将重新启动,并重复该循环。

使用正确描述程序实际功能的准备协议。那,你还没有告诉我们。

进一步阅读

相关内容