介绍ServiceSelf项目

ServiceSelf

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

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

1 nuget

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

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

2 使用示例

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();     } } 
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平台

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

linux平台

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

发表评论

评论已关闭。

相关文章