有些时候需要在程序中启动和管理其他应用进程,当碰到这样的需求的时候可以通过Process对象来完成;为了让使用和管理更方便在这基础上封装 了BeetleX.ServicesProcess组件,通过组件的管理中心让进程操作更方便,同时还集成了Web套件可直接集成在BeetleX.FastHttpApi中进行Web管理。

BeetleX.ServicesProcess组件提供了ProcessCenter对象来添加,管理,启动和停止等进程管理功能。具体功能方法如下:

public class ProcessCenter : IDisposable{public ProcessCenter();public ProcessCenter(ILogHandler logHandler);public ServiceManagementConfig Config { get; }public void Add(string name, string file, string path, string args, bool autoStartup = false);public void Add(ProcessInfo info);public void AutoStartup();public void ChangeUser(string admin, string pwd);public void Delete(string id);public void Dispose();public ServiceProcess GetProcess(string id);public void Modify(string id, ProcessInfo info);public void Start(string id);public void StartAll();public void Stop(string id);public void StopAll();}

以上是组件封装的方法,使用起来非常简单。

接下来主要介绍如何在BeetleX.FastHttpApi中集成它的web管理功能;创建一个控制台项目,引用BeetleX.WebFamily组件;引用后编写以下代码:

class Program{static void Main(string[] args){WebHost host = new WebHost();host.IsWindowsServices = true;WebHost.Title = "Service Management";WebHost.HeaderModel = "beetlex-process-header";WebHost.HomeModel = "beetlex-process-home";WebHost.TabsEnabled = false;host.RegisterComponent<Program>();host.RegisterComponent<BeetleX.ServicesProcess.ProcessCenter>();host.UseFontawesome();host.UseElement(PageStyle.Element);host.Setting(o =>{o.SetDebug();o.Port = 80;o.LogLevel = LogType.Info;});host.Initialize((http, vue, rec) =>{BeetleX.ServicesProcess.WebController controller = new BeetleX.ServicesProcess.WebController();controller.Init(new logHandler(http));http.ActionFactory.Register(controller, new BeetleX.FastHttpApi.ControllerAttribute { BaseUrl = "process" });rec.AddCss("website.css");vue.Debug();});host.Run();}}class logHandler : BeetleX.ServicesProcess.ILogHandler{public logHandler(BeetleX.FastHttpApi.HttpApiServer sever){mServer = sever;}private BeetleX.FastHttpApi.HttpApiServer mServer;public void Error(string message){mServer.GetLog(LogType.Error)?.Log(LogType.Error, null, message);}public void Info(string message){mServer.GetLog(LogType.Info)?.Log(LogType.Info, null, message);}}

启动项目后可以查看启动日志

接下来就可以通过浏览器访问进程管理页面

如果有需要还可以把当前示例项目发布成windows service

发布后即可以使用sc命令来创建、启动、停止和删除服务。

完整示例代码

https://github.com/beetlex-io/BeetleX-Samples/tree/master/Web.ServiceManagement

BeetleX进程服务管理组件应用相关推荐

  1. linux命令-进程(服务)管理

    1. ps process,查看瞬间进程状态(查看实时进程用top命令),ps支持3种格式的命令 1) Unix风格,选项以-开头. 2) BSD风格,选项不能以-开头. 3) GNU长选项,选项以– ...

  2. Linux学习笔记_12_进程管理(ps, top)服务管理(service)查看系统网络(netstat)

    1. 进程的基本介绍 在 LINUX 中, 每个执行的程序(代码) 都称为一个进程. 每一个进程都分配一个 ID 号. 每一个进程, 都会对应一个父进程, 而这个父进程可以复制多个子进程. 例如 ww ...

  3. 服务器环控信息,服务管理监控平台

    2.配线管理可视化 可以与各类管理系统连接,形成可视化管理解决方案,其中包括配线管理可视化解决方案. 可以通过3D界面,清晰展示配线链路,协助您的日常配线管理工作,迅速定位到设备及配线. 3.网管系统 ...

  4. Linux使用systemd管理pppd,Linux 系统的开机以及服务管理

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? systemd 是 Linux 系统中最新的初始化系统 (init), 它主要的设计目标是克服(但不是取代哦) sysv ...

  5. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。...

    [记得server 跟 client 机器都要这样配置] 已禁用对分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问. 已禁用对分 ...

  6. Linux进阶之路————进程与服务管理

    引言 在Linux 中,每个执行的程序(代码)都成为一个进程,Linux 为每一个进程分配了一个唯一的 id 号 - PID. 每个进程都会对应一个父进程,而这个父进程可以复制多个子进程,例如 www ...

  7. OpenHarmony恢复启动子系统init进程之服务管理与发布

    配置文件加载 Jobs 实际上是作为参数使用,作为trigger参数使用. 使用HashMap管理,所有结点按类型存储,通过name获取. 文件 加载类型 说明 /etc/init.cfg Jobs, ...

  8. 《Linux基础》06. 进程管理 · 服务管理

    Linux基础-06 1:进程管理 1.1:查看进程 1.1.1:ps 1.1.2:pstree 1.1.3:top 1.2:终止进程 1.2.1:kill 1.2.2:killall 2:服务管理 ...

  9. Linux基础篇——Linux进程、服务管理

    文章目录 1. 什么是进程 2. Linux下进程与执行者的关系(多人多任务环境) 3. 工作(Job)管理 3.1 将指令丢到后端执行 & 3.2 将目前的工作暂停 Ctrl+z 3.3 j ...

最新文章

  1. Explore the Dispatcher Console
  2. 算法分类整理+模板②:字符串处理
  3. WPF DataGrid根据内容设置行颜色
  4. HDU3363_贪心
  5. 小米10首销战绩公布:嘴上说不买身体却很诚实
  6. 小米大杀器稳了?队友泄露小米MIX4 5G预售页面...
  7. 地方论坛门户网站运营之我见-上篇
  8. mysql 数据快速删除
  9. 用html计算长方形的面积公式,长方形的面积公式
  10. 使用sql语句在命令行下载mysql表格数据
  11. c语言道歉程序代码,C语言编程,请帮我填完整
  12. 自动生成小程序的智能建站系统,项目分享
  13. 信息泄露,那些央视没报的“内鬼
  14. 软件测试/测试开发丨学习Docker就应该掌握的dockerfile语法与指令
  15. eclipse如何修改工作空间名称
  16. 利用新浪API实现数据的抓取\微博数据爬取\微博爬虫
  17. 计算机专业基础需要注意的点
  18. [Python|Clothoid]Clothoid曲线(回旋曲线)与直角坐标求解的python实现
  19. java贪吃蛇博客带图片_java课程设计--贪吃蛇小队博客
  20. 区块链技术的应用在数字藏品上的体现

热门文章

  1. XE5 Android 开发实现手机打电话和发短信 [转]
  2. socket第三方库 AsyncSocket(GCDAsyncSocket)
  3. 前台jsp页面向后台传汉字出现乱码问题解决办法
  4. 2010年下半年计算机专业技术资格考试工作安排
  5. yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】
  6. Linux环境下设置IPDNSGateway
  7. SQL Server2008导入导出数据库
  8. emwin之错误使用控件函数导致死机现象
  9. 2018-10-03-Python全栈开发-day60-django序列化-part3
  10. 【东软实训】SQL多表链接