自给自足.NET Core控制台应用程序作为Linux中的服务



我正在中创建一个简单的控制台应用程序。需要在Linux 上作为服务运行的NET Core

使用以下命令编译应用程序:

dotnet publish-c release-r linux-x64——自包含

然后用从终端运行它

cd发布

/MyAppName

现在我正试图通过将其定义文件如下将其注册为服务

[Unit]
Description=Foo Bar Service
[Service]
WorkingDirectory=/home/Desktop/publish
ExecStart=./home/Desktop/publish/MyAppName
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-postservice
User=myuser
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

然后向注册服务

sudo systemctl启用myappname.service

但当我检查状态时,它会给我以下错误

Unit myappname.service的单位文件设置不正确。

既不是有效的可执行文件名,也不是绝对路径:/主页/桌面/发布/MyAppName

机组配置出现错误,机组将不会启动

如果有一个解决方案,我不必安装网络,我会非常感谢它。

感谢

您正在将工作目录设置为

/home/Desktop/publish

然后你在做

ExecStart=./home/Desktop/publish/MyAppName

这意味着正在运行的命令将是

/home/Desktop/publish/home/Desktop/publish/MyAppName

在配置的ExecStart部分去掉./home/Desktop/publish,它应该可以工作了。

或者,删除WorkingDirectory配置,只为可执行文件(如/home/Desktop/publish/MyAppName(提供一个绝对路径(请注意,它不是以./开头的,而是仅以/开头的

最新更新