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