记录 systemd、systemctl 始终无法启动我的net core程序的问题

发布时间 2023-12-11 16:57:09作者: oct

不通过systemd或ctl,直接到站点的目录,运行

./SGT.DiggApis.Svc 

是可以正常运行的。

 

说明netcore.runtime是正常安装了的。

查看 ctl status,又只会给出失败了但是具体原因就是不给:

 现在关键是ctl启动的时候的错误原因找不到,实际上是有方法的:

以上信息告知最后运行的PID是2331,那么就运行下列命令:

journalctl _PID=2331

这个时候会发现有报错信息为 。netCORE 找不到 (截图已经找不到了)我去。。 明明core runtime已经安装了的啊!操蛋!

service的配置文件再加上一句:

Environment=DOTNET_ROOT=/root/.dotnet

而这个路径也绝非乱加,是来自 dotnet --info:

 

整体配置文件就是:

[Unit]
Description=Digg Apis Svc
After=network.target

[Service]
Type=simple
User=root
Restart=always
RestartSec=5
WorkingDirectory=/sites/svcs/
ExecStart=/sites/svcs/SGT.DiggApis.Svc
ExecReload=/sites/svcs/SGT.DiggApis.Svc
LimitNOFILE=1048576
Environment=DOTNET_ROOT=/root/.dotnet

[Install]
WantedBy=multi-user.target

 

秋林给我的配置文件还有两句:

Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

这里暂时就没有用上了。

 

问题的关键还是 journalctl 来找到具体的进程的错误信息,根据错误信息才能精确定位到解决方案。