http://nginx.org/en/docs/control.html
Nginx信号管理实现
http://nginx.org/en/docs/control.html
Nginx的信号管理命令为:kill -参数 Nginx进程号
例如:kill -HUP $(cat /usr/local/nginx/logs/nginx.pid)
官方参考地址
参数 | 解释 |
---|---|
TERM, INT | Quick shutdown |
QUIT | Graceful shutdown(优雅关闭进程,等请求结束后再关闭) |
KILL | Halts a stubborn process |
HUP | Configuration reload,Start the new worker processes with a new configuration,Gracefully shutdown the old worker processes(改变配置文件,平滑重读配置文件) |
USR1 | Reopen the log files(重读日志,可在日志切割时使用) |
USR2 | Upgrade Executable on the fly(平滑升级) |
WINCH | Gracefully shutdown the worker processes(优雅关闭旧的进程) |
/usr/local/nginx/sbin/nginx -s reload /usr/local/nginx/sbin/nginx -HUP `cate /usr/local/nginx/logs/nginx.pid`
/usr/local/nginx/sbin/nginx -s reopen /usr/local/nginx/sbin/nginx -USR1 `cate /usr/local/nginx/logs/nginx.pid`
任务需求:每日凌晨将nginx日志根据日期重命名日志文件进行切割。
昨天时间命令 date -d yesterday +%Y%m%d 切割脚本内容:
#!/bin/bash # filename nginx_logrotate.sh # author catsnyne@gmail.com DATE=$(date -d yesterday +%Y%m%d) LOG_PATH=/usr/local/nginx/logs/ LOG_NAME=access.log BASE_PATH=/var/log/ SAVE_LOG_NAME=${DATE}.${LOG_NAME} mv ${LOG_PATH}${LOG_NAME} ${BASE_PATH}${SAVE_LOG_NAME} kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)定时执行任务:
1 * * * * /usr/bin/crontab /root/curlog.sh >/dev/null 2>&1
花点时间了解一下:电饭煲做卤鸡