Nginx重启的简单命令

  当我们在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重启的详细介绍希望大家有所收获。

时间: 2025-01-21 16:47:33

Nginx重启的简单命令的相关文章

nginx重启命令方法(linux,centos,ubuntu)总结

平滑重启 如果服务器正在运行的Nginx要进行升级.添加或删除模块时,我们需 要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行 平滑重启命令: kill -HUP 住进称号或进程号文件路径 或者使用 /usr/nginx/sbin/nginx -s reload 注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行.判断Nginx配置是否正确命令如下: ngin

安装nginx时的简单优化

下面来简单说下安装nginx时的简单优化(没有涉及到后期的优化) 一.编译安装前优化 1.关闭debug模式 在NGINX源码文件被解压后,修改auto/cc/gcc这个文件 #debug CFLAGS=" $CFLAGS -g" 注释掉这行,也可以删除! 2.指定特定CPU型号编译优化 --with-cc-opt='-O3' --with-cpu-opt=CPU  #有这几种类型 pentium,pentiumpro,pentium4,athlon opteron,amd64,spa

nginx日常维护常用命令_nginx

一.简明nginx常用命令 1. 启动 Nginx 复制代码 代码如下: poechant@ubuntu:sudo ./sbin/nginx 2. 停止 Nginx 复制代码 代码如下: poechant@ubuntu:sudo ./sbin/nginx -s stoppoechant@ubuntu:sudo ./sbin/nginx -s quit -s都是采用向 Nginx 发送信号的方式. 3. Nginx 重载配置 复制代码 代码如下: poechant@ubuntu:sudo ./sb

Oracle 和 mysql 的一些简单命令对比参照

mysql|oracle Oracle 和 mysql 的一些简单命令对比参照 Oraclemysql对比版本Personal Oracle7 Release 7.3.4.0.0mysql 3.22.34-shareware-debug启动画面(点击放大)默认安装目录C:\ORAWIN95C:\MYSQL各种实用程序所在目录C:\ORAWIN95\BINC:\MYSQL\BIN控制台工具SVRMGR.EXESVRMGR23.EXEmysqladmin.exe数据库启动程序0start73.exe

Oracle和MySQL的一些简单命令对比

Oracle和MySQL的一些简单命令对比 SQL> select to_char(sysdate,'yyyy-mm-dd') from dual; SQL> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_format(now(),'%H-%i-%S'); 日期函数 增加一个月: SQL> selec

Centos上Apache重启,mysql重启,nginx重启方法

Centos上Apache重启,mysql重启, nginx 重启方法 1.重启 apache service httpd restrat /etc/init.d/httpd stop /etc/init.d/httpd start 2.重启 mysql service mysql restart /etc/init.d/mysqld stop /etc/init.d/mysqld start 3.重启Nginx service nginx restart /etc/init.d/nginx s

批处理命令行CMD启动停止重启IIS的命令

原文:批处理命令行CMD启动停止重启IIS的命令 启动IIS:   net start iisadmin    (IIS的整个服务) net start w3svc       (WWW网页WEB服务) 停止IIS:   net stop iisadmin /y     (会自动停止www.ftp和smtp服务) 如果用的IIS自带FTP还可以执行 net start MSFtpsvc 命令来启动FTP 起源网 另外,还可以通过命名行使用iisreset命令加参数对IIS进行控制: C:\Doc

openstack 重启的服务命令整理总结_OpenStack

openstack重启的服务命令集合           最近公司项目需要使用Openstack   由于Openstack 重启服务命令比较多,于是就在网上找了下资料,整理下来,希望能帮助到读者! 重启openstack的整个服务 openstack-service restart 1. 重启dashboard service httpd  restart service memcached restart 2. 重启 ceilometer 2.1 cinder service mongod

Oracle基础知识-SQL简单命令

SQL语句包括两个部分:1 DDL 数据定义语言 2 DML 数据控制语言 DDL: create:创建一个表 [html] view plaincopyprint? create table b( clob char(1) ); alter:增加已经定义的表列的分配 drop:删除一个表 desc:查看一个表的定义 DML: selelct: [html] view plaincopyprint? select * from b; insert: [html] view plaincopypr