• nginx 信号量


    简述

    nginx 实际上上通过信号量去控制进程的,平时所有的关闭、重启等操作的原理都是通过不同的信号发送给nginx 主进程来完成的。

    信号量

    TERM, INT             Quick shutdown     (强制关闭,暴力操作,正常进行的请求突然中断)
    
    QUIT            Graceful shutdown (优雅关闭,会在请求处理完成之后,自动关闭) HUP             Configuration reload
    Start the new worker processes with a new configuration Gracefully shutdown the old worker pro cesses (优雅的重新加载配置文件,如果修改完配置文件,需要重启的话,可以使用这个信号量,使用该信号量重启并不会关闭进程和中断请求)

    USR1              Reopen the log files
    (重写一个日志文件)

    USR2              Upgrade Executable on the fly
    (升级执行文件)

    WINCH              Gracefully shutdown the worker processes
    (优雅的关闭工作进程)

    实际应用

    1、 kill  -HUP/INT/..  pid(nginx master)

    2、 ../sbin/nginx -s  reload 等效于 kill -HUP pid  #加载新的配置,master 进程不变,逐步停止没有请求的work启动新的worker进程。

    3、 kill      -USR1  pid     重新打开日志文件,日志备份时使用。(由于linux 中是通过inode 识别文件的,所以即使重命名文件名字变了但是inode 不变。日志备份把旧日志改名为access.log.bak后新建一个access.log ,发送USR1信号nginx 进程就会关闭正在打开写入的文件,重新写入新的access.log)

    4、USR2与WINCH        当需要把正在运行的nginx 进程平滑升级的时候配合使用

    5、nginx pid  一般主配置文件会配置它保存在 ../logs/nginx.pid中,nginx 启动脚本在关闭nginx 时候会删除此文件,启动的时候生成此文件,根据此文件判定是否启动。

  • 相关阅读:
    摄像机模型 (Camera Model)
    TP中如何用IF
    Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理
    LNMP环境源码搭建
    Linux之不得不说的init(Linux启动级别的含义 init 0-6)
    PHP 生成毫秒时间戳
    Linux Bash Shell字符串截取
    Linux crontab任务调度
    下载百度文库文档
    关于java socket中的read方法阻塞问题
  • 原文地址:https://www.cnblogs.com/fanggege/p/12386004.html
Copyright © 2020-2023  润新知