继在统信UOS上运行.Net Core之后,保持其在后台运行,并出错自重启

继上一篇介绍了如何在统信uos上运行.Net Core项目后,面对实际的开发需要,肯定不能将项目运行在命令窗口中,在窗口中,项目一旦异常,会直接结束,所以我们需要将其运行到后台,并能在出现异常停止时,重启它。这里我们采用创建服务文件的方式实现守护进程。

服务文件 demo.service内容

csharp 复制代码
[Unit]
# 描述内容,可以随便写
Description= .net core run demo
[Service]
#项目地址
WorkingDirectory=/data/demoApi/
# 主进程模式,默认的服务类型,如果项目运行需要加载一些配置文件,可以采用oneshot 或 notify模式
Type=simple
# 用户
User=root
# 用户组-非必须
Group=root
# 启动应用程序的实际命令,前端部分是dotnet的地址,后面是项目实际运行文件的地址
# 这里使用的使用统信UOS系统,所以dotnet的地址如下,其他发行版的linux可以自行查找资料
ExecStart=/usr/share/dotnet/dotnet /data/demoApi/demoApi.dll
# 无论因为什么原因停止,都会启动该过程
Restart=always
# 重启延迟时间
RestartSec=3
# 它表示"系统日志标识符"。 有关守护程序的信息记录在此名称下的系统日志中。 
# 还可以使用此标识符查找进程的 PID。
SyslogIdentifier=myapi-example
# 标识为生产环境
Environment=ASPNETCORE_ENVIRONMENT=Production
# 关闭.NET Core遥测
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
# 多用户模式下,该服务自启
WantedBy=multi-user.target

将上面的内容保存为demoApi.service,并放置到某个目录下,通过下列指令可以控制服务的启动停止,并查看服务状态

csharp 复制代码
# 停止api服务
systemctl stop demoApi.service
# 通过enable子命令,在系统启动并达到该服务配置文件中
# 指定的运行级别(例如,可能是multi-user.target或其他),该服务就会自动启动
# --now 立即启动
systemctl enable --now /data/demoApi/demoApi.service
# 查看api服务的运行状态
systemctl status demoApi.service
相关推荐
小先生8126 小时前
.NET Core后台任务队列
.net·.netcore
MoFe19 小时前
【.net core】【watercloud】动态数据转换为静态表格,或者表格数据返回需要后处理
.netcore
吹牛不交税6 天前
.netcore项目部署在ubuntu22.04虚拟机的docker中的过程记录
docker·容器·.netcore
weixin_421994789 天前
基于 .NET 9.0 的高性能轻量级令牌桶限流服务
.net·.netcore·令牌桶
weixin_421994789 天前
MVC 模式初探
mvc·.net·.netcore
weixin_4219947811 天前
互联网与 Web 应用简介
.net·.netcore
全栈小513 天前
【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理
人工智能·c#·json·.netcore·deepseek
时光追逐者14 天前
C#/.NET/.NET Core优秀项目和框架2026年1月简报
c#·.net·.netcore
装不满的克莱因瓶15 天前
【国产信创】SQLark连接达梦数据库详细教程
数据库·信创·国产化·达梦数据库·dm·sqlark
大尚来也16 天前
双库协同,各取所长:.NET Core 中 PostgreSQL 与 SQLite 的优雅融合实战
postgresql·sqlite·.netcore