• nginx的启停控制命令详解


    一,原理&概述

    Nginx服务的启停在Linux下有很多种,有一类是通过信号机制来实现的

    Nginx在运行时会保持一个主进程和一个或多个worker process工作进程。既然有主进程,那么我们给老大发个信息是不是就关掉Nginx了呢?

    这里我们通过进程号PID来发送信号,获取PID有两个方法:

    1.Nginx服务启动时安装目录下的logs目录会自动生成文件名为Nginx.pid的文件


    我们看到PID为1094

    2.通过ps查看进程


    从运行结果来看,系统中有一个主进程master process和一个工作进程worker process,主进程的PID为1094,与nginx.pid中的值一致

    Nginx服务可以接受的信号

    序号 信号 作用
    1 TERM或INT 快速停止nginx服务
    2 QUIT 平缓停止Nginx服务
    3 HUP 使用新的配置文件启动进程,之后平缓停止原有进程,也就是常说的”平滑重启“
    4 USR1 重新打开日志文件,常用于日志切割
    5 USR2 使用新版本的Nginx文件启动服务,之后平缓停止原有进程,也就是所谓的“平滑升级”
    6 WHINCH 平缓停止(工作进程)worker porcess,用于Nginx的平滑升级

    向Nginx服务的主进程发送信号也是有两种方法:
    1.使用nginx二进制文件

    序号 选项 作用
    1 -?或-h this help,显示帮助信息
    2 -v show version and exit,打印版本号并退出
    3 -V show version and configure options then exit,打印版本号和配置并退出
    4 -t test configuraion and exit,测试配置并退出
    5 -q suppress non-error mess ages during configuration testing,测试配置时只显示错误
    6 -s signal send signal to a master process: stop,quit,reopen,reload,向主进程发送信号
    7 -p prefix set prefix path (default: /Nginx/bin/) 指定Nginx服务器路径前缀
    8 -c filename set configuration file(default: conf/nginx.conf)指定Nginx配置文件路径
    9 -g directives set global directives out of configuration file,指定Nginx附加配置文件路径

    2.使用kill命令发送信号,语法是:
    kill SIGNAL PID
    SIGNAL就是上面表里的某一个,PID肯定就是主进程的pid咯,也可以用nginx.pid文件来动态获取PID。
    kill SIGNAL */logs/nginx.pid
    (路径根据自己的填)

    实例
    ##Nginx服务的停止 刚才我们说过,停止Nginx有两种方法: 1.快速停止,指立即停止当前Nginx正在处理的所有网络请求,马上丢弃,停止工作; 2.平缓停止,指允许Nginx将当前正在处理的网络请求处理完,但不能接受新的请求,处理完后关闭连接,停止工作。 首先使用二进制文件来发送信号 `[root@iZgt88z6l1kvd7Z nginx]# nginx -g TERM` #快速停止 `[root@iZgt88z6l1kvd7Z nginx]# nginx -g INT` #快速停止 `[root@iZgt88z6l1kvd7Z nginx]# nginx -g QUIT` #平缓停止 或者是使用kill来发送信号 `[root@iZgt88z6l1kvd7Z nginx]# kill TERM |INT|QUIT '/Nginx/logs/nginx.pid'`

    Nginx服务的重启

    平滑重启,首先nginx读取新的配置文件,如果语法正确,则启动新的服务,然后缓慢关闭旧的服务进程;当然如果新的配置有错误,nginx仍然会使用旧的Nginx进程来维持生计。

      `[root@iZgt88z6l1kvd7Z nginx]# nginx -g HUP [-c NewConfigurefile]`
      HUP--发送平滑重启信号
      Newconfigurefile--新的配置文件,或者用新的配置文件替代了旧的文件后使用:
      `[root@iZgt88z6l1kvd7Z nginx]# kill HUP '/home/web/server/nginx/logs/nginx.pid'`
    

    Nginx服务的升级

    Nginx服务的

    Nginx服务的

  • 相关阅读:
    解决Altera家的ROM仿真数据一直为0
    解决sublime text3 中文字符乱码
    sublime3添加verilog自动补全代码段
    慢腾腾的Quartus prime16.0加快编译速度
    Quartus prime16.0 与modelsim ae 联调
    JTAG基础知识
    Quartus prime 16.0 中通过JTAG固化程序
    FPGA功能仿真,门级仿真,后仿真的区别
    testbench中$display查看例化model里面信号方法以及$realtime用法
    PHP 批量移动文件改名
  • 原文地址:https://www.cnblogs.com/hxlinux/p/12907758.html
Copyright © 2020-2023  润新知