在Windows系统中创建系统服务
本文以创建nginx服务为例
参考文档
- https://blog.csdn.net/jruby9k/article/details/154491047
- https://blog.csdn.net/2301_77178996/article/details/157768083
- https://www.cnblogs.com/cinemaparadiso/p/18950248
方法一:使用Winsw工具创建nginx服务
简介
- 全称:Windows Service Wrapper
- GitHub:https://github.com/winsw/winsw
- 开源协议:MIT
- 起源:最初为 Jenkins CI 设计,后独立为通用工具
- 特点:基于 XML 配置、功能丰富、支持 .NET
核心机制:WinSW 本身是一个 .exe(如 WinSW.exe),配合一个同名的 XML 配置文件(如 myapp.xml)工作。
下载Winsw工具
访问Winsw的官方下载页面: https://repo.jenkins-ci.org/artifactory/releases/com/sun/winsw/winsw/
下载最新版本的Winsw工具,例如:winsw-2.9.0-bin.exe
配置服务
将下载的Winsw工具重命名为nginx-service.exe,并放置到Nginx的安装路径下。
然后在Nginx目录下创建一个名为 nginx-service.xml 的配置文件,内容如下:
1<service>
2 <id>nginx</id>
3 <name>Nginx Service</name>
4 <description>High Performance Nginx Service</description>
5 <logpath>d:\logs\nginx-logs</logpath>
6 <log mode="roll-by-size">
7 <sizeThreshold>10240</sizeThreshold><!-- 日志文件大小阈值(KB) -->
8 <keepFiles>8</keepFiles> <!-- 保留日志文件数量 -->
9 </log>
10 <executable>d:\dev\nginx-1.25.0\nginx.exe</executable>
11 <startarguments>-p d:\dev\nginx-1.25.0</startarguments>
12 <stopexecutable>d:\dev\nginx-1.25.0\nginx.exe</stopexecutable>
13 <stoparguments>-p d:\dev\nginx-1.25.0 -s stop</stoparguments>
14</service>
注意:
- 确保Nginx目录路径中不包含空格,以避免启动失败。
- exe 的文件名和 xml 的文件名必须同名。
服务的安装、启动、停止和卸载
以管理员身份打开命令提示符(cmd),导航到Nginx目录,执行以下命令:
1# 安装服务
2# 执行完成后,Nginx服务将被添加到Windows服务列表中,服务名称为Nginx Service。
3$ nginx-service.exe install
4
5# 启动服务
6$ nginx-service.exe start
7
8# 停止服务
9$ nginx-service.exe stop
10
11# 卸载服务
12$ nginx-service.exe uninstall
当然,也可以在windows的服务管理界面中执行上述操作。
方法二:使用NSSM工具
下载
下载链接: https://nssm.cc/release/nssm-2.24.zip
解压下载的文件到任意目录即可。
安装服务
以管理员身份打开命令提示符,然后导航到NSSM工具所在的目录,执行 nssm install <服务名>来安装服务:
1nssm install nginx
这时会弹出一个对话框,填入内容:
Path填入:d:\dev\nginx-1.25.0\nginx.exe,表示程序(exe、bat)的路径Startup directory填入:d:\dev\nginx-1.25.0表示程序工作目录Arguments表示参数(可选项;如果nginx.conf不在程序工作目录下,需要指定参数-c <配置文件路径>)
输入完成后,点击Install service 即可。
打开windows的服务管理界面可以看到,Nginx已经安装为windows服务了。
评论