引子
最近常常用到 Nginx,每次开机要手动启动一下,想设置为开机主动执行 start nginx
,找了下材料尝试后总结一下。
- 零碎:Windows 10 家庭中文版
- 版本号:20H2
- 操作系统版本:19042.685
- nginx:版本 1.18.0,只配置了端口和 root 字段。
- Origin
- My GitHub
解决形式
Windows 能够通过手动批改注册表设置启动项,感觉有些麻烦,还是找个工具。找到工具 WinSW,它能够将任何利用包裹并作为一个 Windows 服务治理。在这里能够下载编译好的可执行文件。本次应用的版本是 WinSW v3.0.0-alpha.7。
WinSW 作为一个全局工具应用:
- 下载
WinSW.exe
或WinSW.zip
。 - 新建
myapp.xml
(更具体阐明见文档和示例)。 - 运行
winsw install myapp.xml [options]
装置服务。 - 运行
winsw start myapp.xml
开启服务。 - 运行
winsw status myapp.xml
查看服务是否启动和运行。
在实际操作过程中发现了其它留神点:
- 输出命令时参数
myapp.xml
并不是必须,想要省略,让配置文件名称跟WinSW.exe
文件的名称统一即可,否则不带配置文件名称参数会报错。 WinSW.exe
文件须要搁置在 nginx 装置目录下,否则执行指令的时候会提醒找不到 nginx 的配置文件。- 出谬误的时候,会输入日志,看日志有助于排查问题。
上面是集体配置步骤示例。
第 1 步
将下载的 exe 文件挪动到 nginx 目录下,重命名为 winsw.exe
, 新建配置文件 winsw.xml
,写入上面的配置:
<service>
<id>nginx service</id>
<name>Nginx</name>
<description>This service runs Nginx.</description>
<env name="NGINX_COMIC" value="%BASE%" />
<prestart>start D:\nginx-1.18.0\nginx.exe</prestart>
<executable>D:\nginx-1.18.0\nginx.exe</executable>
<prestop>D:\nginx-1.18.0\nginx.exe -s stop</prestop>
<log mode="roll" />
<onfailure action="none" />
</service>
第 2 步
在以后门路下关上命令窗口(以后文件门路上输出 cmd 回车即可), 执行命令:
winsw install
胜利会呈现上面的提醒:
查看是否胜利增加了服务,“此电脑”右键 ->“治理”->“服务和应用程序”->“服务”:
第 3 步
检测启动服务是否失常:
winsw start
启动胜利也会呈现提醒。拜访 nginx 配置的地址,确认是否无效。确认后,重启电脑,看下是否会自启动。
参考资料
- winsw Github