【发布时间】:2018-05-22 09:52:35
【问题描述】:
我正在尝试将我的 dotnet 应用程序作为守护程序服务运行,我所做的第一步是:
- 使用
NetCore 2.0创建了应用程序 - 使用
dotnet publish bot构建二进制文件
在Ubuntu 终端内我创建了一个用户来运行守护进程:
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-console-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:主进程退出,code=exit
我做错了什么?
【问题讨论】:
-
从where发布并定位到哪个操作系统?此错误抱怨二进制文件本身。如果您为 Windows 编译并尝试在 Linux 上运行,或者为 x64 编译并尝试在 x86 上运行,您会收到此错误
-
错误表明您正在尝试启动服务而不启动CLR
-
可以直接用
dotnet path/to/the.dll运行可执行文件吗? -
可能是因为您的 ExecStart 部分中有不必要的空间?