介绍ServiceSelf项目

ServiceSelf#

做过服务进程功能的同学应该接触过Topshelf这个项目,它在.netframework年代神一搬的存在,我也特别喜欢它。遗憾的是在.netcore时代,这个项目对.netcore程序的支持没有跟进,最近项目也存档停止更新了。

我在开源的一些工具里实现放了自安装和卸载服务的功能的代码,本着够用就好的习惯,并没有把这个功能独立为项目,所以也没有对这个功能做特别好的设计。现在我创建了一个新的ServiceSelf开源项目,把自安装和卸载服务的功能在此重新设计,其功能是为.NET 泛型主机的应用程序提供自安装为服务进程的能力,支持windows和linux平台。

1 nuget#

为了方便使用, nuget包已经发布到 https://www.nuget.org/packages/ServiceSelf/

Copy
<PackageReference Include="ServiceSelf" Version="1.0.0" />

2 使用示例#

Copy
static void Main(string[] args) { // 创建Host之前调用Service.UseServiceSelf(args) if (Service.UseServiceSelf(args)) { var builder = WebApplication.CreateBuilder(args); // 为Host配置UseServiceSelf() builder.Host.UseServiceSelf(); var app = builder.Build(); app.MapGet("/", context => context.Response.WriteAsync("ServiceSelf")); app.Run(); } }
Copy
static void Main(string[] args) { // 创建Host之前调用Service.UseServiceSelf(args) if (Service.UseServiceSelf(args)) { var host = Host.CreateDefaultBuilder(args) // 为Host配置UseServiceSelf() .UseServiceSelf() .ConfigureServices(service => { service.AddHostedService<AppHostedService>(); }) .Build(); host.Run(); } }

3 服务控制#

当yourapp集成ServiceSelf之后,在管理员或root下使用如下命令控制yourapp服务

windows平台

Copy
yourapp.exe start // 安装并启动服务
Copy
yourapp.exe stop // 停止并删除服务

linux平台

Copy
sudo ./yourapp start // 安装并启动服务
Copy
sudo ./yourapp stop // 停止并删除服务
posted @   jiulang  阅读(826)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2013-04-15 理解NetworkSocket之TcpServerBase<TDataEvenArgs>
点击右上角即可分享
微信分享提示
CONTENTS