ServiceSelf
我在开源的一些工具里实现放了自安装和卸载服务的功能的代码,本着够用就好的习惯,并没有把这个功能独立为项目,所以也没有对这个功能做特别好的设计。现在我创建了一个新的ServiceSelf开源项目,把自安装和卸载服务的功能在此重新设计,其功能是为.NET 泛型主机的应用程序提供自安装为服务进程的能力,支持windows和linux平台。
1 nuget
<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服务
yourapp.exe start // 安装并启动服务
yourapp.exe stop // 停止并删除服务
linux平台
sudo ./yourapp start // 安装并启动服务
sudo ./yourapp stop // 停止并删除服务