银河麒麟服务器V10 SP1 .Net6.0 开机自动启动

news2024/10/7 0:27:32

开机自动启动,折腾了一小天,设置/etc/init.d/ 、update-rc.d,可能刚开始用,经验不多吧,尝试多种方式我的服务怎么都启动不起来,根据之前nginx和redis的自动启动经验,使用systemd管理服务,systemd 是 Linux 操作系统的系统和服务管理器,注意全部是小写,systemd是init和SystemV的替代者,查询了微软官方关于NetCore自动启动配置文档:

将 ASP.NET Core应用程序配置为自动启动 - ASP.NET Core | Microsoft Learn

ini文件内容如下:

[Unit]
Description=Example .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

以下是此内容的一些关键说明:

WorkingDirectory 是发布应用程序的目录。
ExecStart 是启动应用程序的实际命令。
Restart=always 是自动的。 如果由于某种原因(无论是手动还是由于崩溃)而停止,则始终会启动此过程。
RestartSec=10 也是自动的。 进程停止后,将在经过 10 秒后启动。
SyslogIdentifier 很重要。 它表示“系统日志标识符”。 有关守护程序的信息记录在此名称下的系统日志中。 还可以使用此标识符查找进程的 PID。
User 是管理服务的用户。 它应存在于系统中,并具有相应的应用程序文件所有权。
可以在服务文件中设置任意数量的环境变量。

注意:该 www-data 用户是系统中的特殊用户。 可以使用此帐户。 你也可以创建一个新用户,用于在 Linux 中练习用户权限。 但是,如果不想创建另一个 Linux 用户,则可以使用 www-data 它。

查询系统用户命令:

root@xxx-pc:~# cat /etc/passwd | cut -f -1 -d:,如下图:

将以上内容定义为dotnet6.service内容修改后如下:

[Unit]
Description=.NET6 Web API App running

[Service]
WorkingDirectory=/usr/local/HF.WebApiServiceRelease6-Linux/HF.WebApiServiceRelease6-Linux
ExecStart=/usr/bin/dotnet /usr/local/HF.WebApiServiceRelease6-Linux/HF.WebApiServiceRelease6-Linux/HF.WebApiService.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet6-WebAPI
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

上传至银河麒麟V10 SP1服务器,使用命令将文件复制到:/lib/systemd/system,此目录实际映射为/usr/lib/systemd/system目录:

cp /home/dotnet6.service /lib/systemd/system/dotnet6.service

复制成功后使用命令启动,如果不是root管理员,首先获取root管理员权限 :

root@xxx-pc:~# sudo su - 会提示输入密码:

获得权限后:

sudo systemctl daemon-reload

sudo systemctl enable dotnet6.service

sudo systemctl start dotnet6.service

sudo systemctl status dotnet6.service

按步骤执行上面命令:

依然没有成功,一脸蒙圈,错在哪了,又开始了翻找文档,网络上大部将dotnet根目录设置为/usr/bin/dotnet 导致配置文件 ExecStart=/usr/bin/dotnet 实际是不正确的,使用命令:which dotnet

 这才是dotnet运行目录,修改设置后,重新执行上面按顺序systemctl的命令,依然启动失败,经过一番摸索查找后发现:

 Environment设置后不会读取appsettings.json配置文件,程序会找appsettings.Production.json文件,于是将这两句注释,最终内容如下:

[Unit]
Description=.NET6 Web API App running

[Service]
WorkingDirectory=/usr/local/HF.WebApiServiceRelease6-Linux/HF.WebApiServiceRelease6-Linux
ExecStart=/home/dotnet/dotnet /usr/local/HF.WebApiServiceRelease6-Linux/HF.WebApiServiceRelease6-Linux/HF.WebApiService.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet6-WebAPI
User=www-data
#Environment=ASPNETCORE_ENVIRONMENT=Production
#Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
#Environment=DOTNET_ROOT=/home/dotnet

[Install]
WantedBy=multi-user.target

再按顺序执行命令:

sudo systemctl daemon-reload

sudo systemctl enable dotnet6.service

sudo systemctl start dotnet6.service

sudo systemctl status dotnet6.service

其实我只执行 sudo systemctl daemon-reload 、sudo systemctl status dotnet6.service 服务已经自动启动了:

 访问页面服务端地址:

至此,终于折腾完成了。 

篇一:

银河麒麟服务器 v10 sp1 安装 .Net6.0_csdn_aspnet的博客-CSDN博客

篇二:

银河麒麟服务器v10 sp1 部署 Net6.0 项目_csdn_aspnet的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解

目录 0.环境 1.背景简介 2.具体实现 2.1 给数据添加数据条 实现效果: 具体操作: 2.2 给数据添加柱状图图表 实现效果: 具体操作: 2.3 给数据添加迷你图(在表格中的折线图) 实现效果: …

基于PyQt5的桌面图像调试仿真平台开发(13)图像边缘显示

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

JavaWeb学习笔记1

目录 web标准 三个组成部分 HTML 标题标签 水平线标签 换行标签 图片标签 布局标签: 超链接标签 属性: 视频标签: 音频标签: 段落标签: 文本加粗标签: 表格标签 表单标签 表单项 CSS Css引入方式…

1.6 OSI 七层参考模型

OSI 参考模型 OSI参考模型解释的通信过程OSI参考模型数据封装与通信过程物理层功能数据链路层功能网络层的功能传输层功能会话层功能表示层功能应用层功能 开放系统互连 (OSI)参考模型是由国际标准化组织 (ISO) 于1984年提出的分层网络体系结构模型目的是支持异构网络系统的互联…

数学建模--TOPSIS

代码 topsis.m Positivization.m inter2Max.m Mid2Max.m Min2Max.m

C++学习 函数

目录 函数 函数的定义 函数的调用 值传递 常见的样式 函数的声明 函数的分文件编写 1.创建后缀.h的头文件 2.创建后缀.cpp的源文件 3.头文件中写函数声明 4.源文件中写函数定义 5.函数调用 函数 作用: C中的函数充当了组织和重用代码的重要工具,提供了抽…

8-js高级-3

JavaScript 进阶 - 3 了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。 编程思想构造函数原型综合案例 编程思想 学习 JavaScript 中基于原型的面向对象编程序的语法实现&#xff…

大胜归来!妙记多这份「高考填志愿」指南请收好!

2023年高考已经落下帷幕,上周和本周多个省份就要公布高考分数了,志愿填报还会远吗? 不知道自己的分数能报什么院校? 不知道目标院校的王牌专业有哪些? 不知道目标专业的就业方向? 不知道有哪些志愿填报小…

C# 简述.NET中堆和栈的区别

目录 一,引言 二,.NET的堆栈 三,.NET中的托管堆 四,.NET中的非托管堆 五、堆栈、托管堆和非托管堆的比较 六,总结 一,引言 .NET提供了垃圾回收机制,使程序员从内存管理中被解放出来。但这…

Unity 语法详解之查找游戏物体的方法(含查找隐藏物体)

为了更好的看懂,有一个非常基础的知识,如果不知道可以移步去了解一下哦 unity | gameobject和transform的区别和关联通俗解释_gameobject transform_菌菌巧乐兹的博客-CSDN博客 一、前情提要 大写的GameObject是个类,里面写满了物体有关的…

python利用docxtpl将excel数据写入word表格

解决问题一:将excel数据读取,并将其保存在word中的表格 解决问题二:使用xlrd读入excel数据,如果是整数的话,打开word后发现保存变成了浮点数,后边多了“.0”。 问题一、 可以参考docxtpl快速上手使用,数…

电商API知识点整理(二)关键字搜索接口item_search获取商品列表

关键字搜索接口名称:item_search 接口背景: 随着互联网的普及和电子商务市场的快速发展,越来越多的消费者开始通过关键字搜索来寻找自己感兴趣的商品。为了满足用户的需求,电商平台开发了各种搜索接口,其中之一就是i…

22个最佳WordPress网站预约插件(2023)

您是否正在寻找可以节省您和您的客户时间的自动预订或预约插件?您是否厌倦了将业务输给竞争对手?您是否正在寻找一种简化在线预约和预订的方法? 您的网站应该让客人可以轻松查看和预订可用的预约。这是WordPress预约插件可以帮助您实现在线业…

基于Python的DES算法的企业用户数据安全加密系统设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

【SLAM14讲】04 三维空间刚体运动

一、坐标系之间的欧式变换 xW , yW , zW定义的世界坐标系,xC , yC , zC 定义的相机坐标系。 相机视野中某个向量 p,它的坐标为pc,而从世界坐标系下看,它的坐标 pw。 二、相机运动 相机运动是一个刚体运动,它保证了同…

golang arena

go 1.20新特性 goland设置 Enviroment 定义环境变量 Go tool arguments 就是go build 的参数 Program arguments 启动参数 GOEXPERIMENTarenas -tags goexperiment.arenas //go:build goexperiment.arenaspackage mainimport ("arena""fmt""net/…

可以实现语音录入的好用的记事本app是哪个?

在现代快节奏的工作生活中,记事本成为了人们不可或缺的工具之一。然而,传统的手写记事本已经无法满足人们快速、高效的需求,语音记事的好处不言而喻。 它不仅能够提高工作效率,减少输入时间,还能够帮助用户更好地记录…

使用Visual Studio 2019 编译Masscan

目录 使用Visual Studio 2019 编译Masscan 1.从github下载源码 2.安装Visual Stiudio 2019 3.准备编译Masscan 4.编译Masscan 总结 使用Visual Studio 2019 编译Masscan 1.从github下载源码 可以直接在GitHub上搜索,下载后的源码目录结构。 2.安装Visual Stiu…

ds1:java-stream流

文章目录 1.修改集合中的值map2.过滤集合中符合条件的值filter找集合中的最大/小的值,及操作后元素的个数max()/min()/count()归约:对集合中所有元素进行自定义计算获取最终值reduce()collect分组(partitioningBy/groupingBy)修改集合中元素之间的连接符…

ctr-k8s镜像管理命令,将k8s正在使用的镜像推送仓库

​ k8s镜像管理命令 查出k8s中pod在使用的镜像 kubectl get -o wide deploy -n yxyw-uat |awk ‘{print $7}’ 查出镜像地址,勾选正则开头配上镜像推送命令 gem-acr-p-a01-registry-vpc.cn-shenzhen.cr.aliyuncs.com/osale/gyx-admin:yxyw-pre-2023-06-05-11-18…