我正在尝试将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
所以我在systemd
目录下创建了一个自定义/etc/systemd/system/netcore-console-bot.service
单元文件:
[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]
我尝试使用daemon
命令执行systemctl status
:start netcore-console-bot.service
但我得到了:
netcoreconsole-bot.service:退出主流程,代码=退出
我做错了什么?
答案 0 :(得分:0)
我很确定您需要从测试中进行的唯一更改是确保告诉dotnet运行dll。我的路径应该非常接近您需要执行的操作。另外,在通过应用发布和打包运行时时,可以使用self-contained deployment。
[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]