systemd 服務啟動正常,但重新啟動後掛起

systemd 服務啟動正常,但重新啟動後掛起

我遇到了一個奇怪的問題,我已經設定了一個運行 dotnet 專案的自訂 systemd 服務。當系統第一次啟動時,服務也啟動得很好,但是當我重新啟動它時,它掛起。

系統是Azure上的Ubuntu 20.04。

以下是服務說明:

[Unit]
Description=Api

[Service]
WorkingDirectory=/home/aviad/Backend
ExecStart=/snap/bin/dotnet run -c AzureDev --launch-profile AzureDev
Restart=always
RestartSec=10
User=aviad

[Install]
WantedBy=multi-user.target

這是結果sudo systemctl status api

● api.service - Api
     Loaded: loaded (/etc/systemd/system/api.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-14 15:51:50 UTC; 29min ago
   Main PID: 855 (dotnet)
      Tasks: 39 (limit: 9513)
     Memory: 314.2M
     CGroup: /system.slice/api.service
             ├─ 855 /snap/dotnet-sdk/120/dotnet run -c AzureDev --launch-profile AzureDev
             └─2408 /home/aviad/Backend/bin/AzureDev/net5.0/Backend

這是重啟後的狀態:

● api.service - Api
     Loaded: loaded (/etc/systemd/system/api.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-09-14 16:33:33 UTC; 7s ago
   Main PID: 8373 (dotnet)
      Tasks: 0 (limit: 9513)
     Memory: 460.0K
     CGroup: /system.slice/api.service
             ‣ 8373 /snap/dotnet-sdk/120/dotnet run -c AzureDev --launch-profile AzureDev

Sep 14 16:33:33 machine1 systemd[1]: Started Api.

除了狀態不好之外,實際的專案並沒有真正運作起來。

我嘗試了更多的事情並得到了相同(壞)的結果:

  1. 停止服務,等待一段時間,然後啟動它
  2. 停用該服務,稍等片刻,然後啟用它
  3. 在 a 之後和之前執行上述操作systemctl daemon-reload
  4. kill -9向進程 id發出 a並讓其systemd重新啟動

相關內容