写在前面

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

正文

过程

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

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

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

非安装目录下使用 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\nginx 也可以。

结论

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

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

启动使用

start nginx "-p xxx"

退出使用

nginx -p xxx -s quit

注意:

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

写在后面

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

Windows命令行在任意位置启动和退出nginx的更多相关文章

  1. 从Windows命令行启动MySQL

    SERVER: 从Windows命令行启动MySQL 可以从命令行手动启动MySQL服务器.可以在任何版本的Windows中实现. 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS ...

  2. 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它

    无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer.Windows服务器管理工具或NET START命令启动它 1. ...

  3. windows命令行快速启动软件

    windows桌面上太多的应用程序快捷方式很影响美观,于是寻思使用类似Linux系统中命令行的方式来启动软件. 只需要3步: 1.建立一个目录A,用来存放快捷方式.比如,建立D:\path.并复制快捷 ...

  4. Oracle学习.Windows 命令行 启动ORACLE服务与实例

    使用数据库前要先打开数据库的实例和监听器! --总结启动命令如下: lsnrctl  [start|stop|status]                  --启动监听器,停止监听器,查看监听器的 ...

  5. 探索Windows命令行系列(2):命令行工具入门

    1.理论基础 1.1.命令行的前世今生 1.2.命令执行规则 1.3.使用命令历史 2.使用入门 2.1.启动和关闭命令行 2.2.执行简单的命令 2.3.命令行执行程序使用技巧 3.总结 1.理论基 ...

  6. 探索Windows命令行系列(5):几个实用的命令例解

    1.关机命令(shutdown) 2.管理 Windows 服务(sc) 3.管理任务进程(tasklist.taskkill) 4.显示 TCP/IP 配置值(ipconfig) 5.网络诊断工具( ...

  7. 探索Windows命令行系列(6):活用批处理解决实际问题

    1.批量修改文件名 2.批量重启服务 3.全盘搜索指定文件 3.1.全盘搜索名称为 mm.jpg 的文件,获取其全路径 3.2.查找系统中所有名称以 .docx 结尾的文件 4.调用可执行程序 4.1 ...

  8. Windows命令行参数的知识(一)

    最近没事的时候,准备研究一下Windows命令行参数的知识,因为每次自己在操作电脑时总是效率太慢,如果能够了解Windows参数的一些知识,绝对能提高效率! 基本外部命令和内部命令 首先是基本的知识, ...

  9. Windows命令行(DOS命令)教程

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS——Disk Operation System 磁盘 ...

随机推荐

  1. WPF Tree多级绑定

    <Window x:Class="TreeTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/20 ...

  2. linux备份恢复命令

    dump 发行版不自带,需要 yum 或 apt 安装.安装时 restore 也会自动安装. 支持分区和增量备份(仅支持分区增量,目录备份不支持增量).(第一次完全备份,第二次及以后只备份增加和修改 ...

  3. docker-compose权限不够

    root@kali:~# docker-compose version -bash: /usr/local/bin/docker-compose: 权限不够 chmod +x /usr/local/b ...

  4. xxs攻击

    1 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏洞旁路掉访问控制--例如 ...

  5. adb 常用命令大全(3)- 查看手机设备信息

    查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery 其中 scale 代表最大电量,level 代表当 ...

  6. JPA实现泛型baseServcie+Mybatis

    在开发的过程中,我们总无法避免不同的实体类会去实现相同的操作(增删查改,分页查询等),因此在开发时,我们期望泛型将通用的方法进行包装,使我们能够专注于实体类自身的独特方法,而非一般性常用且重复性高的方 ...

  7. Element UI:DatePicker的终止日期与起始日期关联

    Template // 起始日期 <el-date-picker v-model="queryParams.startTime" :picker-options=" ...

  8. JS007. 深入探讨带浮点数运算丢失精度问题(二进制的浮点数存储方式)

    复现与概述 当JS在进行浮点数运算时可能产生丢失精度的情况: 从肉眼可见的程度上观察,发生精度丢失的浮点数是没有规律的,但该浮点数丢失精度的问题会100%复现.经查阅,这个问题要追溯至浮点数的二进制存 ...

  9. es6语法中promise的使用方法

    Promise是一个构造函数,它有resolve,reject,race等静态方法;它的原型(prototype)上有then,catch方法,因此只要作为Promise的实例,都可以共享并调用Pro ...

  10. 【第十一篇】- Git Gitee之Spring Cloud直播商城 b2b2c电子商务技术总结

    Git Gitee 大家都知道国内访问 Github 速度比较慢,很影响我们的使用. 如果你希望体验到 Git 飞一般的速度,可以使用国内的 Git 托管服务--Gitee(gitee.com). G ...