XXHolic / segment

some notes
MIT License
28 stars 4 forks source link

Windows 下 Nginx 开机自启动 #97

Open XXHolic opened 3 years ago

XXHolic commented 3 years ago

引子

最近经常用到 Nginx ,每次开机要手动启动一下,想设置为开机自动执行 start nginx ,找了下资料尝试后总结一下。

解决方式

Windows 可以通过手动修改注册表设置启动项,感觉有些麻烦,还是找个工具。找到工具 WinSW ,它可以将任何应用包裹并作为一个 Windows 服务管理。在这里可以下载编译好的可执行文件。本次使用的版本是 WinSW v3.0.0-alpha.7 。

WinSW 作为一个全局工具使用:

  1. 下载 WinSW.exeWinSW.zip
  2. 新建 myapp.xml (更详细说明见文档示例)。
  3. 运行 winsw install myapp.xml [options] 安装服务。
  4. 运行 winsw start myapp.xml 开启服务。
  5. 运行 winsw status myapp.xml 检查服务是否启动和运行。

在实际操作过程中发现了其它注意点:

下面是个人配置步骤示例。

第 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>

83-step1

第 2 步

在当前路径下打开命令窗口(当前文件路径上输入 cmd 回车即可),执行命令:

winsw install

83-cmd

成功会出现下面的提示:

83-install

查看是否成功添加了服务,“此电脑”右键 -> “管理” -> “服务和应用程序” -> “服务”:

83-check

第 3 步

检测启动服务是否正常:

winsw start

启动成功也会出现提示。访问 nginx 配置的地址,确认是否有效。确认后,重启电脑,看下是否会自启动。

参考资料

:wastebasket: 看了下[《心灵奇旅》][url-movie]这部作品,制作精良。里面让我印象很深刻的是,主角在实现人生梦想后的一段话: ![83-poster][url-local-poster] 可以明显的感受到其中的落差感。回到家中,不断回想这生活中的种种平常事和物,再想到 22 对于这些视为平常和理所当然事情的反应,决定去让 22 回到这个世界上。 这个剧情,让我理解的是,不管是不是实现了梦想,平常的事和物,实际上对于我们大部分一般人来说,占据了很大一部分,这些应该都是值得我们去珍视。 那么为什么会想用自己的生命作为代价,让 22 来到这个世界上呢?说不清。