继在统信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
相关推荐
鹏大师运维3 天前
统信UOS安装Subtitle Edit并使用Edge-TTS生成AI语音教程
linux·前端·人工智能·edge·麒麟·统信uos·ai语音
IPHWT 零软网络4 天前
信创场景下大容量语音网关的架构设计与实践——以 MX120G-A 为例
架构·信创·国产化·语音网关
ModelHub XC信创模盒4 天前
压力之下,重构赛道:从中美AI博弈到信创生态的深层跃迁
大数据·人工智能·重构·开源·信创·范式
Litluecat5 天前
信创改造,Oracle切海量数据库,语法与类型坑
数据库·sql·oracle·信创·字段类型·海量
鹏大师运维5 天前
Ubuntu 26.04 Linux 7.0内核安装VMware实战
linux·ubuntu·vmware·虚拟机·麒麟·统信uos·linux7.0
鸠摩智首席音效师5 天前
如何在 macOS 上安装 .NET Core ?
macos·.netcore
Litluecat6 天前
信创迁移:Oracle切换海量数据库,慢sql扫描
数据库·sql·oracle·信创·海量
宝桥南山9 天前
Microsoft Agent Framework(MAF) - 如何将workflow或者A2A client转换成一个AI Agent
microsoft·ai·微软·aigc·.net·.netcore
zhz521412 天前
服务器等保加固实施报告
运维·服务器·信创·国密·等保
牛奶咖啡1315 天前
k8s容器编排技术实践——OpenEuler的k8s高可用集群构建实战
云原生·kubernetes·信创·openeuler·keepalived·haproxy·k8s高可用集群部署