本文主要说三点:
使用新生命NewLife的.NET Linux在线安装工具给国产操作系统银河麒麟安装.NET Runtime运行时(也可以是SDK),超级简单
使用NewLife.Agent加标准的ASP.NET的http主机做Web服务,监视服务,秒级拉起。
简单介绍更加强大的StarAgent星尘代理,核心还是NewLife.Agent。
2023年起开始在项目中使用大石头所主导的新生命开源组件:NewLife.Agent,当时写了篇文章《使用新生命的NewLife.Agent将控制台程序变成Windows服务程序》。2025年升级到最新版,还写了篇《新生命NewLife.Agent添加菜单:AddMenu过期,建议定义命令处理类,并继承 BaseCommandHandler》 ,最近研究国产操作系统,顺便研究了一下新生命的更多用法。
安装.NET运行时非常简单,只需要用到下面的语句即可,默认安装最新版,当前是.NET 9:
curl http://x.newlifex.com/dotNet/net.sh | sudo bash
可指定.NET版本如:
curl http://x.newlifex.com/dotNet/net6.sh | sudo bash
curl http://x.newlifex.com/dotNet/net8.sh | sudo bash
安装完毕后,使用dotnet --info显示信息如下:
cuiwenyuan@cuiwenyuan-pc:~$ dotnet --info
Host: Version: 9.0.4 Architecture: x64 Commit: f57e6dc747 RID: linux-x64
.NET SDKs installed: No SDKs were found.
.NET runtimes installed: Microsoft.AspNetCore.App 6.0.36 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 8.0.15 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 9.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.36 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 8.0.15 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 9.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found: None
Environment variables: Not set
global.json file: Not found
Learn more: https://aka.ms/dotnet/info
Download .NET: https://aka.ms/dotnet/download
新生命.NET Linux在线安装工具。支持服务器和桌面环境,自动识别指令集架构,支持x86/x64/arm/arm64/mips64/loongarch64/riscv64。
其实也前也介绍过新生命的另一款针对Windows下的.NET神器:《DotNet运行时安装助手:新生命NewLife的幸运四叶草LuckyClover》
讲完了安装运行时,下面看看运行.NET程序有多简单!
把程序复制到银河麒麟电脑桌面或任意指定路径,如桌面publish目录。
只需要执行如下命令,即可运行.NET服务程序即Web服务:
sudo dotnet '/home/cuiwenyuan/桌面/publish/Zero.Web.dll'
这里一定要注意为了安装服务代理,一定要要使用sudo来运行命令。
命令执行时会收到提醒,来自安全中心的默认提示,当然选择允许才行。
模拟运行的时候会弹出一些安全提示,这是银河麒麟操作系统的安全中心默认提醒。
模拟运行,Web服务正常。
浏览器访问效果如下:
其实如何把标准的ASP.NET的Web服务使用NewLife.Agent来做服务宿主,源代码很简单,可以到NewLife.Agent的Git库拖下来代码,找到Zero.Agent参考一下。
核心代码如下:
public class Program{ private static void Main(String[] args) {#if DEBUG //调试环境默认启动 if (args?.Length == 0) args = ["-run"];#endif
new MyServices { StartAct = () => CreateHostBuilder(args) }.Main(args); }
public static IHostBuilder CreateHostBuilder(String[] args) => Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });}
来到第三部分,我们来认识下星尘代理StarAgent,看下图就知道这个是干啥的了。
StarAgent部署在每台应用服务器,或桌面系统,或边缘网关。作为系统服务,通过配置拉起并守护业务应用进程,同时用于收集监控各服务器性能,支持Windows/Linux/macOS/IoT(包括各种国产系统)。
星尘代理功能特点
自启动。自身注册为系统服务,随操作系统自动启动。
多系统。支持Windows、Linux、macOS、IoT边缘网关、OpenWRT以及各种国产操作系统。
性能监测。定时上报节点性能,包括CPU内存磁盘以及网络指标。
应用管理。读取配置文件,启动多个目标应用。
应用守护。监测应用进程,如有退出或内存超限则重新启动。
自动更新。根据节点版本配置策略,支持不同环境的版本升级。
运行时安装。星尘平台的节点框架,支持下发策略给代理,安装特定版本的dotNet运行时。
Windows安装方法:下载并解压 http://x.newlifex.com/star/staragent80.zip ,管理员执行以下命令完成安装并指定服务端。
StarAgent.exe -install -server http://star.newlifex.com:6600
Linux安装方法:管理员执行一下命令完成安装,安装过程需要联网下载文件,企业内网建议下载并自定义脚本。
curl http://x.newlifex.com/star/star.sh | sudo bash
虽然还没有正式在项目中使用,但已经安排上了日程,等有了心得体会再来给大家分享。
正文结束,更多有关新生命开源组件及使用方法,请访问官方网站:https://newlifex.com/
----------
还没有关注微信视频号的,请您关注下,收看旺财码农原创短视频。
如果本文对您有启发,请点击顶部“关注”或者右下角“在看”。
老读者建议“星标”,没有任何互动,系统可能不会在第一时间推送给你。
我知道你一直在看,所以我一直在写。
看了以上文字,有共鸣,有感触,欢迎留言评论!
等你已久,只为同行。
更欢迎扫码加我微信交流。
觉得文字有价值,请给我赞赏鼓励。
欢迎分享本文到微信朋友圈,转载请保留出处
祝你开心每一天!