Nginx重启的简单命令 kill

开发 前端
Nginx重启有些时候需要我们使用到,但是我们在使用的时候会发现有很多简单的方法,下面就是一个简单的kill命令就可以进行Nginx重启。

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

如果机器比较慢,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重启的详细介绍希望大家有所收获。

【编辑推荐】

  1. Nginx反向代理支持的各种编程语言
  2. Nginx asp错误502的解决方法
  3. nginx resin相关程序的代码介绍
  4. Nginx Resin安装中的相关技巧和操作流程
  5. Nginx启动如何做到操控自如
责任编辑:张浩 来源: 互联网
相关推荐

2013-12-03 09:12:37

Linux命令kill命令

2009-10-20 09:19:11

Linux kill命

2018-04-27 14:58:09

Linuxkill命令

2010-06-07 12:51:51

Linux 查看进程

2009-12-25 16:39:24

Linux关机重启命令

2013-09-27 09:56:25

2010-07-12 17:23:14

2010-03-30 19:23:56

Nginx日志切割

2010-03-30 18:56:13

Nginx配置模块

2022-04-14 11:17:41

MySQL字符配置

2009-11-18 09:26:36

Ubuntulinux关机

2015-07-22 17:19:20

Linux命令技巧

2022-11-01 12:16:47

Nginx微服务编译

2010-05-06 17:03:49

Unix命令

2009-05-26 12:14:59

Linuxkill终止命令

2010-03-29 10:38:36

Nginx配置

2010-05-28 13:37:50

MySQL简单命令

2010-04-28 08:52:59

unixware

2013-06-05 09:37:09

WindumpWindump网络命令

2009-11-13 09:36:10

UNIX通讯命令操作系统
点赞
收藏

51CTO技术栈公众号