当我们在Nginx中安装完一个新程序之后就需要进行重启,其实在重启的时候有个小技巧。kill命令就是一个十分神奇的命令。下面我们就来学些有关kill命令如何来进行Nginx重启的。
如果机器比较慢,Nginx重启kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。
后来我在nginx.net上看到了一种更奇妙的Nginx重启
kill -HUP $pid($pid就是nginx master进程的进程号)
我一般这样用
kill -HUP `cat /data/nginx/logs/nginx.pid`
这种方式的好处是实现“平滑重启”,在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。
所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的。
参考网上的做法,用如下脚本控制:
#!/bin/sh
BASE_DIR='/usr/local/'
${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.
conf >& ${BASE_DIR}nginx/logs/nginx.start
info=`cat ${BASE_DIR}nginx/logs/nginx.start`
if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then
kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid`
echo "ok"
else
killall -9 nginx
sleep 1
${BASE_DIR}nginx/sbin/nginx
fi
else
echo "######## error: ########"
cat ${BASE_DIR}nginx/logs/nginx.start
fi
以上就是对Nginx重启的详细介绍希望大家有所收获。
怎么提升windows 怎么提升windows10的流畅
怎么提升windows 2003的系统安全性策略 Windows 2003凭借其稳定的性能受到广大用户的青睐,但面对层出不穷的新病毒,提高windows 200(0)人阅读时间:2024-07-02Windows 8系统下如何设置在ie新选项卡中打开
Windows 8系统下如何设置在ie新选项卡中打开 1、正常打开ie10浏览器。 2、在打开的ie10浏览器中,找到上面的工具并单击,的打开的菜单栏中找到并单(0)人阅读时间:2024-07-02如何找回不见的Windows(如何找回不见的抖音号)
如何找回不见的Windows 7系统光驱? 第一、大多数情况下,我们电脑的光驱不见了,可能是由于驱动安装不正常导致,我们通常在设备管理器中,会看到有光驱设备,只(0)人阅读时间:2024-07-02用u大侠如何重装系统 u大侠u盘装机教程
用u大侠如何重装系统 U大侠 硬盘安装需要在你的操作系统没有完全损坏的情况下,也就是能够进入操作系统的情况下,U盘则没有那么多要求。 新手必知: 系统文件一般分(0)人阅读时间:2024-07-02怎么提升windows 怎么提升windows10的流畅
Windows 8系统下如何设置在ie新选项卡中打开
用u大侠如何重装系统 u大侠u盘装机教程
GHOST还原系统出现(ghost还原错误)