为什么我的服务每 90 秒重启一次?

为什么我的服务每 90 秒重启一次?

我正在使用 Ubuntu Server 16.04。

这是.service文件:

[Unit]
Description=NoDescpt

[Service]
ExecStart=/home/git/cmd/daphnei
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target

以及相关脚本/home/git/cmd/daphnei

#!/bin/bash
cd /home/git/hsfzmun/server
/home/git/virtualenvs/hsfzmun/bin/daphne -b 0.0.0.0 -p 8001 -v2 config.asgi:channel_layer

令我困惑的是该服务每 90 秒就会重新启动一次,但我找不到原因。


我发现服务的状态始终为activating,这意味着systemd不知道服务已启动。但是脚本做过因为我可以访问我的网站。那么它有什么问题呢?

答案1

您正在使用

Type=Notify

在您的单元文件中。这意味着应用程序应在准备好通过以下方式提供服务时通知 systemd:sd-通知 Systemd 可能没有收到来自您的应用程序的通知并重新启动它。

除非你的应用程序向 systemd 发送通知,否则你应该更新相应的行

Type=simple 

其他选项是检查是否daphne可以向 systemd 发送通知并打开通知。

查看有关通知的 systemd 文档了解更多详情Type=notify

答案2

由于它没有在 90 秒内(默认启动超时)声明它已准备就绪,因此 systemd 已确定您的服务已失败。失败的服务将导致所有服务被终止。

由于Restart=always,您的失败服务将重新启动,并重复该循环。

此外,Restart=on-failure在这种情况下可能会更好。

相关内容