为什么我的服务每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不知道服务已经启动。 然而,脚本确实开始,因为我可以访问我的网站。 那么它有什么问题?

您正在使用

 Type=Notify 

在你的单元文件中。 这意味着应用程序在通过sd-notify准备通过服务器通知 systemd时可能没有收到来自应用程序的通知并重新启动它。

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

 Type=simple 

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

有关Type=notify更多详细信息,请查看有关通知的systemd文档

由于它没有声明在90秒内准备就绪(默认启动超时),systemd已经决定你的服务已经失败。 失败的服务让所有的东西都被杀死。

因为Restart=always ,你的失败的服务然后重新启动,循环重复。

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