Ubuntu
為什麼我的服務每 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 秒重新啟動一次,但我不知道為什麼。
我發現服務的狀態是 always
activating
,表示systemd
不知道服務已經啟動。但是腳本確實啟動了,因為我可以訪問我的網站。那麼它有什麼問題呢?
您正在使用
Type=Notify
在你的單位文件中。這意味著應用程序應該在準備好通過sd-notify服務時通知 systemd Systemd 可能沒有收到來自您的應用程序的通知並重新啟動它。
除非您的應用程序正在向 systemd 發送通知,否則您應該將相應的行更新為
Type=simple
其他選項是檢查是否
daphne
可以向 systemd 發送通知並打開通知。檢查有關通知的 systemd 文件以獲取更多詳細資訊
Type=notify
由於沒有說明它在 90 秒內準備好(預設啟動超時),因此 systemd 已確定您的服務已失敗。失敗的服務讓一切都被扼殺。
由於
Restart=always
,您的失敗服務將重新啟動,並且循環重複。此外,
Restart=on-failure
在這種情況下可能會更好。