Der systemd-Dienst startet ordnungsgemäß, hängt sich aber nach dem Neustart auf

Der systemd-Dienst startet ordnungsgemäß, hängt sich aber nach dem Neustart auf

Ich habe ein seltsames Problem. Ich habe einen benutzerdefinierten systemd-Dienst eingerichtet, der ein dotnet-Projekt ausführt. Beim ersten Systemstart startet der Dienst auch einwandfrei, aber wenn ich ihn neu starte, hängt er sich auf.

Das System ist Ubuntu 20.04 auf Azure.

Hier ist die Servicebeschreibung:

[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

Dies ist das Ergebnis vonsudo 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

Und das ist der Status nach einem Neustart:

● 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.

Abgesehen vom schlechten Status läuft das eigentliche Projekt nicht wirklich.

Ich habe noch ein paar weitere Dinge ausprobiert und hatte das gleiche (schlechte) Ergebnis:

  1. Stoppen Sie den Dienst, warten Sie eine Weile und starten Sie ihn dann
  2. Deaktivieren Sie den Dienst, warten Sie eine Weile und aktivieren Sie ihn dann
  3. Führen Sie die oben genannten Schritte nach und vor einemsystemctl daemon-reload
  4. Gibt ein kill -9an die Prozess-ID aus und lässt systemdsie neu starten

verwandte Informationen