首页 > 其他分享 >介绍ServiceSelf项目

介绍ServiceSelf项目

时间:2023-04-15 17:46:13浏览次数:50  
标签:服务 项目 args UseServiceSelf Host ServiceSelf 介绍 yourapp

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 // 停止并删除服务

标签:服务,项目,args,UseServiceSelf,Host,ServiceSelf,介绍,yourapp
From: https://www.cnblogs.com/kewei/p/17321517.html

相关文章

  • ThreadLocal 简单介绍
    目录一、什么是ThreadLocal?二、ThreadLocal如何使用?三、ThreadLocal的实现原理是什么?1、set()方法2、ThreadLocalMap3、get()方法4、remove()方法5、总结四、ThreadLocal数据共享五、ThreadLocal在Java中的应用场景有哪些?六、常见问题1、Entry的key为什么设计成弱引用?2、ThreadLo......
  • Calibre GUI PV 流程介绍(0.8um BCD Process )
    Calibre规则名词解释设计规则检查:DesignRuleCheck,DRC版图&原理图一致性检查:LayoutVersusSchematics,LVS天线效应检查:Antennaeffect,ANT电学规则检查:ElectricalRuleChecking,ERC寄生参数提取:LayoutParameterExtraction,LPE注意1:需要加的CDL文件cdl器件文件放到网......
  • 浅谈-api项目设计(上)
    从事api后端接口开发也有五六年时间了,都没有好好的整理下api项目架构模板以及如何从零开始设计。抽空写个文章记录下,顺便检查下自己对这块的理解,如有不正确的地方,欢迎底下友好交流。本文的目的是检查自己对架构设计的理解,思考架构设计的意义和常用的设计思想按照软件工程流程。......
  • 项目连接讯飞语音接口的相关操作
    相关操作在讯飞官网找到了这样一个语音听写模件,然后自己尝试着调用了这个语音接口,幸运地,成功调用到了这个语音接口,但是这个调用仅仅是在Java里面实现了,并没有实现在web里面,后续还会继续完善这个调用的!具体步骤1、进入到讯飞平台官网:https://www.xfyun.cn/选择注册一个帐号之后......
  • springboot项目打成jar包后 ,配置文件加载的优先级顺序
    SpringBoot会按照以下顺序来加载配置文件:1、内置默认值:SpringBoot会首先加载内置的默认值,这些默认值定义在SpringBoot的代码中,例如,内置的默认端口号为8080。2、应用级别的配置文件:SpringBoot会从以下位置加载应用级别的配置文件,这些位置按照优先级逐一检查:当前目录下的/c......
  • docker:Dockerfile、docker私有仓库、dockercompose介绍、dockercompose部署flask+redi
    目录一、Dockerfile1.1常用和不常用命令1.2dockerfile构建一个djagno项目二、docker私有仓库2.1镜像传到官方仓库2.2镜像分层2.3私有仓库搭建三、dockercompose介绍四、dockercompose部署flask+redis项目4.1新建flask项目app.py4.2编写Dockerfile--》用于构建flask项目的......
  • docker,Dockerfile,docker私有仓库,dockercompose介绍,dockercompose部署flask+redis项目,d
    内容回顾容器操作dockerstart容器id启动容器dockerstop容器id停止容器dockerrm 容器id删除容器ockerrm`dockerps-aq`#正在运行的容器不能删除dockerexec容器id命令让容器执行命令dockercp宿主机目录容器id:容器目录#目录要存在dockercp容......
  • Linux-部署你的项目
    1选择服务器可自行选择,我选择的为aliyun的个人服务器,108一年的。2服务器环境设置2.1安装java1:查看当前java版本[root@localhostsoftware]#java-version2:查看当前服务器已安装的java[root@localhostsoftware]#rpm-qa|grepjava显示:java-1.7.0-openjdk-1.7.0......
  • vue3微信公众号商城项目实战系列(5)页面适配手机屏幕
    上一篇完成了2个页面之间的跳转,在浏览器中也可以正常浏览和跳转,但这2个页面并没有为适配手机屏幕设计,如果我们用chrome浏览器模拟手机屏幕的大小后再看,结果如下图:(注:用chrome模拟手机屏幕只需要在正常情况下按下F12键,然后点击红框2处的小图标就可以了,改变模拟屏幕的大小......
  • i7cpu温度90度会坏吗详细介绍
    有很多喜欢玩游戏的小伙伴在选择CPU的时候都会选择IntelCorei7处理器,那么这款i7cpu温度90度会坏吗?下面就为大家带来详细介绍。【CPU温度多少正常相关介绍】i7cpu温度90度会坏吗:答:i7cpu温度90度不会坏。i7cpu温度90度不会坏,会损伤到硅晶体的温度大概在115度,只要低于该温度就......