Search code examples
deploymentasp.net-coresystemd

kestrel-hellomvc.service: Failed at step USER spawning /usr/bin/dotnet: No such process


I was following the tutorial https://learn.microsoft.com/en-us/aspnet/core/publishing/linuxproduction on publishing asp.net core project on Nginx, the previous steps all seem successful, but while

systemctl start kestrel-hellomvc.service
systemctl status kestrel-hellomvc.service

I got

kestrel-hellomvc.service - Example .NET Web API Application running on Ubuntu
   
Loaded: loaded (/etc/systemd/system/kestrel-hellomvc.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2017-04-24 03:12:42 UTC; 8s ago
Process: 4285 ExecStart=/usr/bin/dotnet /home/84999/Demo4/Demo4.dll (code=exited, status=217/USER)
Main PID: 4285 (code=exited, status=217/USER)

Apr 24 03:12:42 instance-5 systemd[1]: Started Example .NET Web API Application running on Ubuntu.
Apr 24 03:12:42 instance-5 systemd[4285]: kestrel-hellomvc.service: Failed at step USER spawning /usr/bin/dotnet: No such process
Apr 24 03:12:42 instance-5 systemd[1]: kestrel-hellomvc.service: Main process exited, code=exited, status=217/USER
Apr 24 03:12:42 instance-5 systemd[1]: kestrel-hellomvc.service: Unit entered failed state.
Apr 24 03:12:42 instance-5 systemd[1]: kestrel-hellomvc.service: Failed with result 'exit-code'.

Does anyone know the solution, it seems I don't have the /usr/bin/dotnet folder.


Solution

  • I've solved the problem, the source folder owner should be www-data, having 755 permission. The Apache user is called www-data on Ubuntu, and apache on CentOS. So specifically set User=www-data in kestrel-hellomvc.service if running on Ubuntu, thanks to Jeppe's comment.

    Also, if you have added users in /etc/systemd/system/gunicorn.service before, removing these users might resolve this issue as well.