介绍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 // 停止并删除服务
介绍ServiceSelf项目的更多相关文章
- H2O中的随机森林算法介绍及其项目实战(python实现)
H2O中的随机森林算法介绍及其项目实战(python实现) 包的引入:from h2o.estimators.random_forest import H2ORandomForestEstimator ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第14节 高级篇幅之SpringBoot多环境配置_59、SpringBoot多环境配置介绍和项目实战
笔记 1.SpringBoot多环境配置介绍和项目实战(核心知识) 简介:SpringBoot介绍多环境配置和使用场景 1.不同环境使用不同配置 例如数据库配置,在开发的时候, ...
- 一、Beego介绍与项目创建及启动
一.beego 简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 torna ...
- Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查
一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process ...
- ASP.NET Core 介绍和项目解读
标签: ASP.NETCore 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目 ...
- .NET CORE学习笔记系列(1)——ASP.NET MVC Core 介绍和项目解读
ASP.NET MVC Core 项目文件夹解读 一.项目文件夹总览 1.1.Properties——launchSettings.json 启动配置文件,你可以在项目中“Properties”文件夹 ...
- 1. BeeGo 介绍与项目的创建,启动
简介 BeeGo是一个快速开发Go而应用的HTTP框架,他可以用来快速开发API,web以及后端服务等各种应用,是一个restful 的框架,主要涉及灵感来源于tornado,sinatr和flask ...
- selenium3 web自动化测试框架 四:Unittest介绍及项目实战中的运用
unittest介绍及运用,可以参考之前写的文章,除了未结合web自动化演示,基础知识都有了 https://www.cnblogs.com/wuzhiming/p/8858305.html unit ...
- 介绍vue项目中的axios请求(get和post)
一.先安装axios依赖,还有qs依赖 npm install axios --save npm install qs --save qs依赖包用post请求需要用到的 插入一个知识点: npm in ...
- [ASE]项目介绍及项目跟进——TANK BATTLE·INFINITE
童年的记忆,大概是每周末和小伙伴们围坐在电视机前,在20来寸的电视机屏幕里守卫着这个至今都不知道是什么的白色大鸟. 当年被打爆的坦克数量估计也能绕地球个三两圈了吧. 十几年过去了,游戏从2D-3D,画 ...
随机推荐
- hdu: Dire Wolf(区间DP)
Problem DescriptionDire wolves, also known as Dark wolves, are extraordinarily large and powerful wo ...
- PHP实现JWT登录鉴权
一.什么是JWT 1.简介 JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准. 简单的说,JWT就是一种Token的编码算法,服务器端负责根据一个 ...
- 游戏内存优化之使用16位纹理/NPOT
转自:https://blog.csdn.net/oqqQuZi1234567/article/details/41749599 图片文件大小和纹理内存占用是两码事.假设他们是帐篷.图片文件就相当于帐 ...
- 查看mmdetection中模型的配置信息
方法一 可以直接打开mmdetection中的目录查看,/configs目录下都是对应的模型的配置 示例: 可以找到_base_目录下的这四个文件文件查看配置. 方法二 读取配置文件查看 在命令行中输 ...
- 试题管理/在线课程/模拟考试/能力评估报告/艾思在线考试系统www.aisisoft.cn
艾思软件发布在线考试系统, 可独立部署, 欢迎咨询索要测试账号 一. 主要特点: ThinkPHP前后端分离框式开发 主要功能有: 在线视频课程, 模拟考试, 在线考试, 能力评估报告, 考试历史错题 ...
- python中and和or表达式的返回值
a or b 首先明确运算顺序, 从左至右 # 其次只要存在真就会返回真, and返回的是最后一个真, or返回的是第一个真 # 再次, a,b中存在假, 则and返回第一个假, or返回最后一个假 ...
- Vue学习之基础大全
1 导入vue: 2 <script src="vue.min.js"></script> 3 创建vm实例 4 var vm=new Vue({ 5 el ...
- 在Vue的mixins(混入)里面调用Vuex(@/store/index.js)的函数
第一步:在mixin.js里面引入 mapMutations 第二步:跟组件内调用一样,在methods里面写 "...mapMutations(['xxx'])", 然后LZ ...
- vue中的观察者模式和发布订阅者模式
观察者模式 目标者对象和观察者对象有相互依赖的关系,观察者对某个对象的状态进行观察,如果对象的状态发生改变,就会通知所有依赖这个对象的观察者, 目标者对象 Subject,拥有方法:添加 / 删除 / ...
- 取出预训练模型中间层的输出(pytorch)
1 遍历子模块直接提取 对于简单的模型,可以采用直接遍历子模块的方法,取出相应name模块的输出,不对模型做任何改动.该方法的缺点在于,只能得到其子模块的输出,而对于使用nn.Sequensial() ...