美文网首页
easy-service 一个可以将常规程序注册为windows

easy-service 一个可以将常规程序注册为windows

作者: 打出了枫采 | 来源:发表于2021-03-06 17:05 被阅读0次

    https://github.com/pandolia/easy-service
    EasyService 是一个可以将常规程序注册为系统服务的工具,体积只有 37KB 。你可以按常规的方法编写程序,然后用 EasyService 注册为一个系统服务,这样你的程序就可以在开机后用户登录之前自动运行、且在用户注销之后也不会停止。

    该工具可以将程序注册成系统服务,除了关机,基本上可以一直保持在运行状态,且自动啓动

    介绍

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

    然而,在 Windows 下编写一个可注册为系统服务的程序并不是一件简单的事情。首先,程序必须是二进制的可执行程序,这就排除了脚本语言和虚拟机语言;其次,程序必须按系统服务的格式编写,过程繁琐,编写示例可见:MS 官方文档
    如果你需要在 Windows 系统下部署网站、API 或其他需要长期在后台运行的服务, EasyService 将是一个很有用的工具。

    安装

    下载 源码及程序,解压。右键单击 bin 目录下的 register-this-path.bat ,以管理员身份运行,将 bin 目录加入至系统路径中,也可以手动将此目录加入至系统路径。

    重新打开 “我的电脑” ,在任意位置打开一个命令行窗口,输入 svc -v ,如果正常输出版本信息,则表明安装成功。

    使用方法

    (1) 编写、测试你的程序,EasyService 对程序仅有一个强制要求和一个建议:

    • 强制要求: 程序应持续运行

    • 建议: 当程序的标准输入接收到 “exit” 或 “回车” 后在 5 秒之内退出

    其中建议要求是非强制性的,程序不满足此要求也可以。

    典型的程序见 index.js (nodejs 版), main.py (python 版) 或 SampleWorker.cs (C# 版),这三个程序都是每隔 1 秒打印一行信息,键入回车后退出。

    (2) 打开命令行窗口,输入 svc create hello-svc ,将创建一个样板工程 hello-svc 。

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

    # Windows 系统服务名称、不能与系统中已有服务重名
    ServiceName: hello-svc
    
    # 需要运行的可执行程序及命令行参数
    Worker: sample-worker.exe
    
    # 程序运行的工作目录,请确保该目录已存在
    WorkingDir: worker
    
    # 输出目录,程序运行过程的输出将会写到这个目录下面,请确保该目录已存在
    # 如果不想保存 Worker 的输出,请设为 $NULL
    OutFileDir: outfiles
    
    # 程序输出的编码,如果不确定,请设为空
    WorkerEncoding: utf8
    
    

    (4) 用管理员身份打开命令行窗口(Win10 系统下,需要在开始菜单中搜索 cmd 然后右键以管理员身份运行), cd 到 hello-svc 目录:

    a. 运行 svc check 命令检查配置是否合法

    b. 运行 svc test-worker 命令测试 Worker 程序是否能正常运行

    若测试无误:

    c. 运行 svc install 命令安装并启动系统服务,此时程序就已经开始在后台运行了

    d. 运行 svc stop|start|restart|remove 停止、启动、重启或删除本系统服务

    e. 运行 svc log 查看正在运行的服务程序的输出

    相关文章

      网友评论

          本文标题:easy-service 一个可以将常规程序注册为windows

          本文链接:https://www.haomeiwen.com/subject/snucqltx.html