EasyService Windows 系统服务注册工具开源项目

我要开发同款
匿名用户2019年11月11日
84阅读
开发技术Python
所属分类应用工具、操作系统工具
授权协议MIT

作品详情

EasyService是一个可以将常规程序注册为系统服务的工具。你可以按常规的方法编写程序,然后用EasyService注册为一个系统服务,这样你的程序就可以在开机后用户登录之前自动运行、且在用户注销之后也不会停止。

如果你需要在WindowsServer下部署网站、Api等服务,EasyService将是一个很有用的工具。

介绍

如果你的Windows程序需要在开机后用户登录之前就开始运行、且在用户注销之后也不停止,那么你需要将程序注册为一个系统服务。

然而,在Windows下编写一个可注册为系统服务的程序并不是一件简单的事情。首先,程序必须是二进制的可执行程序,这就排除了脚本语言和虚拟机语言;其次,程序必须按系统服务的格式编写,编写过程繁琐,编写示例可见:MS官方文档 。

系统要求

EasyService需要.NetFramework4.0(大部分Windows系统都已自带)。可尝试运行worker/sample-worker.exe,如果正常运行,则表明系统中已安装.NetFramework4.0。

使用方法

(1)编写、测试你的程序,EasyService对程序仅有以下两点要求:

a.程序应持续运行b.当程序的标准输入接收到“exit”后应在10秒之内退出

典型的程序见worker/index.js(nodejs版),worker/main.py(python版)或src/SampleWorker.cs(C#版)。

(2)下载 源码及程序,解压。

(3)打开svc.conf文件,修改配置:

#Windows系统服务名称、不能与系统中已有服务重名ServiceName:AnEasyService#需要运行的可执行程序及命令行参数Worker:nodeindex.js#程序运行的工作目录WorkingDir:worker#输出目录,程序运行过程的输出将会写到这个目录下面OutFileDir:outfiles#程序输出的编码,如果不确定,请设为空或noneWorkerEncoding:utf8

(4)在svc.exe所在的目录下打开命令行窗口:

a.运行 svccheck 命令检查配置是否合法b.运行 svctest-worker 命令测试Worker程序是否能正常运行

若测试无误:

c.运行 svcinstall 命令注册并启动系统服务,此时你的程序就已经开始运行了,即便用户注销也不会停止运行,且系统开机后、用户登录之前就会自动运行。在服务管理控制台中可以查看已注册的服务。d.运行 svcstop|start|restart|remove 停止、启动、重启或删除本系统服务。内部实现

EasyService实质是将自己(svc.exe)注册为一个系统服务,此服务启动时,会读取svc.conf中的配置,创建一个子进程运行Worker中指定的程序及命令行参数,之后,监视该子进程,如果发现子进程停止运行,会重新启动一个子进程。而当此服务停止时,会向子进程的标准输入中写入数据“exit”,并等待子进程退出,如果等待时间超过10秒,则直接终止子进程。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论