You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Linux树莓派上的dotnet程序无法通过systemd设置为开机自启?

问题原因

报错明确提示systemd的默认PATH路径中找不到dotnet可执行文件,虽然你在ExecStart字段写了dotnet的绝对路径,大概率是你修改完服务文件后没有重载systemd守护进程,导致systemd仍在读取旧的配置内容;也有可能是dotnet路径的权限配置有问题,或者你书写的路径存在拼写错误。

解决步骤

  • 首先执行重载命令,让systemd加载最新的服务配置:
    systemctl daemon-reload
  • 用pi用户执行你写的ExecStart完整命令,验证路径是否正确、程序是否能正常启动:
    /home/pi/.dotnet/dotnet /home/pi/deployment-location/ConsoleApp1.dll
    如果命令执行后程序正常运行,说明路径和权限没有问题;如果报错,先修正路径或dotnet、程序目录的访问权限。
  • 如果重载后启动仍报错,直接在服务的[Service]配置段手动注入包含dotnet路径的PATH环境变量,修改后的完整服务配置如下:
[Unit]
Description=Example .NET App

[Service]
# 新增以下环境变量配置,将dotnet安装路径加入PATH
Environment="PATH=/home/pi/.dotnet:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
WorkingDirectory=/home/pi/deployment-location
ExecStart=/home/pi/.dotnet/dotnet /home/pi/deployment-location/ConsoleApp1.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-example
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Development

[Install]
WantedBy=multi-user.target
  • 保存修改后再次重载守护进程,启动服务即可:
systemctl daemon-reload
systemctl start ConsoleApp1.service

内容的提问来源于stack exchange,提问作者Melon NG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:06:07