linux下的部署.net8 Web API 程序

2025-07-16  乐帮网

.net linux

在 Linux 系统上使用 systemd 管理 .NET Web API 服务是一种推荐做法,可以确保服务在系统启动时自动运行,并在崩溃时自动重启。以银河麒麟V10国防版和.net8.0 web api为例下面是详细步骤:

一、安装.net8.0 sdk 
可参考上一篇文章内容。
二、创建服务配置文件
可以vi 或 nano进行编辑文件,在/etc/systemd/system新建一个配置文件vkt.api.service,命令如下:

sudo nano /etc/systemd/system/vkt.api.service

打开窗口后编辑内容如下:

[Unit]
Description=Aero API Service
After=network.target
# 如果依赖特定数据库服务,可添加:
# After=mysql.service
# Requires=mysql.service

[Service]
# 添加通知超时(按需调整)
TimeoutStartSec=30
NotifyAccess=all
# 服务执行用户,建议创建专用用户而非root
User=dotnetuser
Group=dotnetuser

# 应用程序路径和参数
WorkingDirectory=/var/www/vkt.api
ExecStart=dotnet /var/www/vkt.api/vkt.api.dll
# 可添加环境变量和参数
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
Environment=ASPNETCORE_URLS=http://*:9000

# 服务控制选项
Type=notify
Restart=always
RestartSec=5
KillSignal=SIGINT
SyslogIdentifier=aero-api
TimeoutStopSec=30
KillMode=mixed

# 资源限制(可选)
# LimitCPU=20%
# LimitRAM=512M

[Install]
WantedBy=multi-user.target

配置说明
[Unit] 部分:
Description: 服务描述
After: 指定服务启动顺序依赖
Requires: 指定强制依赖的服务
[Service] 部分:
WorkingDirectory: 应用工作目录
ExecStart: .NET 应用执行命令
Environment: 设置环境变量(如生产环境、URL 等)
Type=notify: 使用 ASP.NET Core 内置的通知机制
Restart=always: 服务崩溃或退出时自动重启
KillSignal=SIGINT: 使用 SIGINT 信号优雅关闭应用
[Install] 部分:
WantedBy=multi-user.target: 设置为多用户模式下自动启动

三、应用配置并启动服务

1. 重新加载 systemd 配置

sudo systemctl daemon-reload

2. 启动服务

sudo systemctl start vkt.api

3. 设置开机自启

sudo systemctl enable vkt.api

4. 检查服务状态

sudo systemctl status vkt.api

按照以上配置完成后发现 运行sudo systemctl start vkt.api后无任何反馈,但是访问webapi确能正常访问,但是实际上已经启动成功了,查看日志有如下输出 systemctl status vkt.api.service
● vkt.api.service - Vkt API Service
     Loaded: loaded (/etc/systemd/system/vkt.api.service; disabled; preset: enabled)
     Active: activating (start) since Fri 2025-07-11 07:44:44 UTC; 30s ago
   Main PID: 40799 (dotnet)
      Tasks: 35 (limit: 4527)
     Memory: 170.8M (peak: 171.3M)
        CPU: 3.137s
     CGroup: /system.slice/vkt.api.service
             └─40799 dotnet /var/www/vkt.api/vkt.api.dll

这个下一篇文章再解决。

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力