引子
最近经常用到 Nginx ,每次开机要手动启动一下,想设置为开机自动执行 start nginx
,找了下资料尝试后总结一下。
解决方式
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 配置的地址,确认是否有效。确认后,重启电脑,看下是否会自启动。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。