继在统信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
相关推荐
weixin_421994781 天前
认识数据 - 变量与数据类型
c#·.net·.netcore
老龄程序员1 天前
记一次由于.netcore程序堆栈溢出的问题分析
.netcore
一然明月2 天前
.NET Core基础
.netcore
知行EDI3 天前
宝兰德BES中间件的部署与启动实战:从环境搭建到知行之桥上线
中间件·edi·电子数据交换·知行之桥·信创·宝兰德bes
罗马苏丹默罕默德7 天前
Ubuntu下部署.NetCore WebApi的方法
数据库·ubuntu·.netcore
主公不搬砖8 天前
Nacos 2.5.2 国产信创 kingbase适配
java·docker·nacos·信创·kingbase·国产适配
lingxiao168889 天前
WebApi详解+Unity注入--中篇:.net core的WebAPI
unity·c#·.netcore
老龄程序员9 天前
基于OpenIddict6.4.0搭建的授权UI管理界面
.netcore
武藤一雄10 天前
C# 关于多线程如何实现需要注意的问题(持续更新)
windows·后端·microsoft·c#·.net·.netcore·死锁
冰茶_10 天前
WPF路由事件:隧道与冒泡机制解析
学习·c#·.net·wpf·.netcore·mvvm