• Windows命令行在任意位置启动和退出nginx


    写在前面

    本文给出Windows系统中能在任意路径下通过命令行启动和退出nginx的方法。不想看过程的读者可以直接跳转到结论,一样能解决问题。

    正文

    过程

    很多Windows下的nginx教程都教我们先cd到nginx安装目录(即nginx.exe所在目录),再执行 start nginx 和 nginx -s quit 来分别启动和退出nginx。但实测发现,在非安装目录下,执行这两条命令会失败,即使你已经为nginx.exe配置了环境变量。

    本文中,nginx安装目录如下图所示:

     

    注意,除非特别说明,否则后文中nginx的安装目录一律用 D:software ginx 表示。

    非安装目录下使用 start nginx 启动nginx的结果如下图所示:

    注意,正常(即nginx能启动)情况下,执行 start nginx 后会有一个窗口一闪而过,这是正常的。在非安装目录下,执行 start nginx 后也会有一个窗口一闪而过,但nginx根本没起来(有上图为证),只不过是窗口闪退,我们没办法看清报错信息罢了。

    同样,非安装目录下使用 nginx -s -quit 退出nginx也会失败,好在这次直接报错了,如下图:

     事实上,nginx内部使用相对路径而非绝对路径,因此,在非安装目录下执行可执行文件 nginx.exe 就会出现找不到安装路径下的文件的情况,上图中划红线部分也证实了这一点。

    找到了原因,就可以对症下药了。我们可以使用 - p 参数(使用 nginx -h 可以查看所有参数及含义)为nginx显式指出文件路径。具体地,启动时使用 start nginx "-p D:/software/nginx" ,停止时使用 nginx -p D:/software/nginx -s quit 。

    注意:

    1. 推荐使用Windows PowerShell而非cmd。亲测,cmd下启动、退出nginx后,再次启动,会失败,目前还未搞清原因(这里恳请了解原因的读者不吝赐教),但Windows PowerShell下不会出现该问题。
    2. 启动命令中, -p D:/software/nginx 必须用英文双引号括起来。
    3. Windows PowerShell下可直接使用 D:/software/nginx ,当然, D:\software\nginx 或 D:software ginx 也可以。

    结论

    第一步:将nginx.exe所在目录加入环境变量的Path中,不会操作的读者请自行学习。

    第二步:在任意目录下,按如下方式启动或退出nginx:

    启动使用

    start nginx "-p xxx"

    退出使用

    nginx -p xxx -s quit

    注意:

    1.  xxx 表示 nginx.exe 所在的绝对路径。
    2. 启动命令中记得加英文双引号。
    3. 推荐使用 Windows PowerShell 而非 cmd 。

    写在后面

    在下刚接触nginx,文中错误疏漏之处在所难免,欢迎广大读者批评指正,您的批评是在下前进的不竭动力。

  • 相关阅读:
    数据收集
    数据展现
    一场媲美“超女”海选的招聘狂潮
    时机论:早起的鸟儿也要选对“用户”季节
    程序设计实践(评注版) 评注者序
    “三低”用户养活的互联网
    芯故事 心感动:英特尔企业文化的力量
    初始化游戏状态数据
    初始化游戏状态数据二
    几个常用的JavaScript字符串处理函数 – split()、join()、substring()和indexOf()
  • 原文地址:https://www.cnblogs.com/zpcdbky/p/15338998.html
Copyright © 2020-2023  润新知