在 ubuntu 18.4 上为 .net 应用程序创建服务时出错。可执行路径不是绝对的:

Error During creation of service for .net application on ubuntu 18.4. Executable path is not absolute:

我正在尝试为我的 .net 运行 命令创建一个服务。

cd /lib/systemd/system/YellowPages.service

[Unit]
Description = Yellow pages .NET service

[Service]
Type=forking
WorkingDirectory=/home
ExecStart=dotnet /home/yp_app/YellowPages.dll

[Install]
WantedBy=multi-user.target

我已经在 /home/yp_app 上申请了。

当我run:systemd开始YellowPages.service 我得到 参数过多。

所以我尝试了:systemctl start YellowPages.service 我得到

   Failed to start YellowPages.service: Unit YellowPages.service is not loaded properly: Exec format error.
See system logs and 'systemctl status YellowPages.service' for details.

当我看猫的时候/var/log/syslog

我能看到

systemd[1]: /lib/systemd/system/YellowPages.service:7: Executable path is not 
absolute: dotnet /home/yp_app/YellowPages.dll

我是 Linux 的新手 我想知道我哪里错了。 谁能帮我解决这个问题?

根据手册,ExecStart 需要是您的可执行文件的绝对路径。然而,你只是简单地使用 dotnet,只需将其更改为:

ExecStart=/[path]/dotnet  /home/yp_app/YellowPages.dll

更多信息可以参考https://www.freedesktop.org/software/systemd/man/systemd.service.html