Nginx重启的简单命令kill

当我们在Nginx中安装完一个新程序之后就需要进行重启,其实在重启的时候有个小技巧。kill命令就是一个十分神奇的命令。下面我们就来学些有关kill命令如何来进行Nginx重启的。

创新互联公司是专业的黑山网站建设公司,黑山接单;提供网站设计、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行黑山网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

如果机器比较慢,Nginx重启kill进程时一瞬间杀不完,再执行一次即可。这种重启方式不是特别安全,如果配置有误,则会重启失败,需要重新修改配置文件然后再启动,期间会消耗一点时间。不过对于目前普遍还是不怎么严格的http界而言,这点时间还不至于产生太大损失,只要不是在关键时刻搞出来就好。如果希望沿用这种重启办法,我提议还是先好好测试吧。

后来我在nginx.net上看到了一种更奇妙的Nginx重启

kill -HUP $pid($pid就是nginx master进程的进程号)

我一般这样用

 
 
 
  1. kill -HUP `cat /data/nginx/logs/nginx.pid`

这种方式的好处是实现“平滑重启”,在ps -aux中可以看到,nginx首先启动新进程,旧的进程仍然提供服务,在一段时间后,旧的进程服务结束就自动关闭,剩下新进程继续服务。但是这种方式也是有缺点的,如果配置文件有误,或者资源冲突,则重启失效,但nginx并没有任何的提示!这就会时常发现改动的配置文件没有生效,又比较难找到问题。

所以,最后杂和了一下问题,弄了一个nginx.sh,这个版本的nginx.sh还是没有解决kill -HUP的资源冲突的问题,但解决了配置文件的问题。资源冲突的比如80端口被占用、日志文件目录没有创建这种的。
参考网上的做法,用如下脚本控制:

 
 
 
  1. #!/bin/sh
  2. BASE_DIR='/usr/local/'
  3. ${BASE_DIR}nginx/sbin/nginx -t -c ${BASE_DIR}nginx/conf/nginx.
    conf >& ${BASE_DIR}nginx/logs/nginx.start
  4. info=`cat ${BASE_DIR}nginx/logs/nginx.start`
  5. if [ `echo $info | grep -c "syntax is ok" ` -eq 1 ]; then
  6. if [ `ps aux|grep "nginx"|grep -c "master"` == 1 ]; then
  7. kill -HUP `cat ${BASE_DIR}nginx/logs/nginx.pid`
  8. echo "ok"
  9. else
  10. killall -9 nginx
  11. sleep 1
  12. ${BASE_DIR}nginx/sbin/nginx
  13. fi
  14. else
  15. echo "######## error: ########"
  16. cat ${BASE_DIR}nginx/logs/nginx.start
  17. fi

以上就是对Nginx重启的详细介绍希望大家有所收获。

分享文章:Nginx重启的简单命令kill
分享链接:http://www.csdahua.cn/qtweb/news37/249687.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网