C# 无法将dotnet应用程序作为守护程序服务执行
我正在尝试将我的C# 无法将dotnet应用程序作为守护程序服务执行,c#,.net,linux,daemon,C#,.net,Linux,Daemon,我正在尝试将我的dotnet应用程序作为守护程序服务运行,我所做的第一步是: 使用NetCore 2.0创建应用程序 使用dotnet发布bot 在Ubuntuterminal中,我为运行守护程序创建了一个用户: sudo useradd -s /sbin/nologin dotnetuser sudo mkdir /var/bot sudo cp -R /home/publish/* /var/bot sudo chown -R dotnetuser:dotnetuser /var/bot
dotnet
应用程序作为守护程序服务运行,我所做的第一步是:
dotnet发布bot
Ubuntu
terminal中,我为运行守护程序创建了一个用户:
sudo useradd -s /sbin/nologin dotnetuser
sudo mkdir /var/bot
sudo cp -R /home/publish/* /var/bot
sudo chown -R dotnetuser:dotnetuser /var/bot
因此,我在:/etc/systemd/system/netcore控制台bot.service
目录下创建了一个自定义的systemd
单元文件:
[Unit]
Description= Bot console application
DefaultDependencies = no
[Service]
Type = oneshot
RemainAfterExit = no
ExecStart= /var/bot/ bot.dll
WorkingDirectory = /var/bot
User = dotnetuser
Group = dotnetuser
[install]
我尝试使用systemctl status
命令执行daemon
:start netcore console bot.service
但我得到了:
netcoreconsole-bot.service:主进程已退出,代码=退出
我做错了什么?我非常确定,您需要对我的测试进行的唯一更改是确保告诉dotnet运行dll。我的路径应该非常接近你需要做的。或者,您可以在发布应用程序并将运行时与应用程序打包时使用
[Unit]
Description= Bot console application
DefaultDependencies = no
[Service]
Type = oneshot
RemainAfterExit = no
ExecStart= /usr/bin/dotnet /var/bot/bot.dll
WorkingDirectory = /var/bot
User = dotnetuser
Group = dotnetuser
[install]
从何处发布并针对哪个操作系统?此错误反映二进制文件本身。如果您为Windows编译并尝试在Linux上运行,则会出现此错误,或为x64编译并尝试在x86上运行错误表示您试图在不启动CLR的情况下启动服务您是否已经查看过是否可以直接使用
dotnet path/to/the.dll运行可执行文件?可能是因为ExecStart部分中存在不必要的空间?