Windows 下部署服务

544人浏览 / 0人评论

easy-service

GitHub - pandolia/easy-service (将解压后svc.exe所在路径添加到系统变量path)

常用命令:

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

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

若测试无误:

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

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

配置项:

# 服务名称,不能与系统中已有服务重名
ServiceName: easy-service

# 服务显示名称,不能与系统中已有服务的显示名称相同
DisplayName: easy-service

# 服务描述
Description: An example of EasyService

# 本服务依赖的服务名列表,用逗号分开,例如: Appinfo,AppMgmt
Dependencies:

# 需要运行的可执行程序及命令行参数
Worker: sample-worker.exe

# 运行程序的环境变量
Environments: TEST-ENV1=A1,TEST-ENV2=A2,TEST-ENV3=A3
Environments: TEST-ENV4=A4,TEST-ENV5=A5,TEST-ENV6=A6

# 程序运行的工作目录,请确保该目录已存在
WorkingDir: worker

# 输出目录,程序运行过程的输出将会写到这个目录下面,请确保该目录已存在
# 如果不想保存 Worker 的输出,请设为 $NULL
OutFileDir: outfiles

# 停止服务时,等待程序主动退出的最大时间
WaitSecondsForWorkerToExit: 5

# 注意: MaxLogFilesNum配置已废弃(自v1.0.11)
# 日志文件的最大个数,设为空则不限制,否则需要设置为大于等于 2 的整数
# svc.exe 每隔两个小时检查一次日志文件个数,如果个数大于这个值,就删除最老的几个文件
MaxLogFilesNum: 

# 程序的内存使用限制值
WorkerMemoryLimit:

# 程序输出的编码,如果不确定,请设为空
WorkerEncoding: utf8

# 运行本服务的用户,一般情况下用 LOCAL-SYSTEM ,下面三个项都设为空
# 如果使用普通用户,下面三个项, 域、用户名、密码都要设置,而且要在服务管理面板里面授权此用户运行服务的权限
# 域如果不确定,可以设置为 “."
Domain:
User:
Password:

nssm

下载地址:NSSM - the Non-Sucking Service Manager (将解压后nssm.exe所在路径添加到系统变量path)

nssm -h 查看常用命令

Windows自带

参考:https://www.jianshu.com/p/907c3558cc9b

操作:win + r 输入 %UserProfile% 后回车,在上方文件路径框中输入 AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 后回车,将需要自启动的程序快捷方式或者脚本文件放入即可。

或者:win + r 输入 shell:startup 回车。

全部评论