• linux USR1亦通常被用来告知应用程序重载配置文件


    linux kill 命令 以及 USR1 信号 解释
    原创 2016年03月16日 16:48:27 标签:linux kill -USR1 5325
    最近 在做 服务器搭建的一些工作,其中 用到了 日志 转存 的部分。 
    日志转存 是这么写的
    
    /home/server/souledge/log/game.log
    {
        missingok
        copytruncate
        size 1
        sharedscripts
        postrotate
            echo "start--------------"
            [ -f /var/run/nginx.pid ] &&  kill -USR1 `cat /var/run/nginx.pid`
            mv /home/server/souledge/log/game.log.1 /home/server/souledge/log/game.`date -d "1 hour ago" +%Y%m%d%H`
            echo "end-----------------"
        endscript
    }
    
    对于  [ -f /var/run/nginx.pid ] &&  kill -USR1 `cat /var/run/nginx.pid` 产生了 兴趣,
    
    1.[ -f ]  解释 [ 是 linux 命令, 不信, which [ 试试;跟 test 命令 含义 一样 ;  [ -f xxx] 是 测试 文件 是否 存在
    2. 系统将 进程xx 的 进程号 存储 在 /var/run/xx.pid 文件下 ;所以 `cat /var/run/nginx.pid` 是为了 取到 nginx 的进程号
    3.kill -USR1 看下文
    
    
    USR1信号 解释
    摘自: http://www.xuebuyuan.com/323422.html
    
    USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。
    以上摘自wiki:
    http://zh.wikipedia.org/wiki/SIGUSR1%E5%92%8CSIGUSR2
    呃,近日发现还有USR2,貌似这个USR1和2都可以用户自定义的,同样摘自上面的wiki:
    在POSIX兼容的平台上,SIGUSR1和SIGUSR2是发送给一个进程的信号,它表示了用户定义的情况。它们的符号常量在头文件signal.h中定义。在不同的平台上,信号的编号可能发生变化,因此需要使用符号名称。
     
    kill -HUP pid 或者 killall -HUP pName:
    其中pid是进程标识,pName是进程的名称
    如果想要更改配置而不需停止并重新启动服务,可以使用上面两个命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
    根据约定,当你发送一个挂起信号(信号1或HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。
  • 相关阅读:
    Atlassian In Action-Jira之核心配置(二)
    mybatis的插入与批量插入的返回ID的原理
    Atlassian In Action-Jira之指导思想(一)
    Atlassian In Action
    如何进行软件技术管理?
    [simple-orm-mybaits]基于Mybatis的ORM封装介绍
    Java利用Mybatis进行数据权限控制
    给大家推荐一个Java学习和面试的GitHub项目
    立志
    一勤天下无难事
  • 原文地址:https://www.cnblogs.com/gaoyuechen/p/8109205.html
Copyright © 2020-2023  润新知