nginx的相关命令

nginx的启用和停止有多种方式1、nginx服务的信号控制;2、nginx的命令行控制。

1、信号控制

ps -ef | grep nginx

可以查询跟nginx有关的所有线程。

有一个master进程和worker进程

我们作为管理员,只需要通过master进程发送信号来控制nginx,这时需要俩个前提条件:一个是要操作的master进程,一个是信号。

如何获取master进程的pid:1、ps -ef | grep nginx可以查询;2、logs目录有nginx.pid文件可以查询进程id。

     信号种类:

 调用命令:kill -signal pid    signal即为信号 pid为master进程id 

其中HUB命令是会删除原来的worker进程,新创建一个worker进程读取的最新的配置文件,pid也变了。 USR2命令可以不停止nginx运行的情况下,完成nginx的升级。流程是:master接收到USR2信号后。会将现在的所有master、worker及其之间的联系都复制一份,将新创建的master的id存放在nginx/logs/nginx.pid中,原来的master 的id存放在新创建的nginx/logs/nginx.pid.oldbin文件中,确认更新完毕后,会通过QUIT命令(需要程序员手动去执行)关闭原来的master相关进程。

比如优雅的关闭服务

kill -QUIT 1213
//或者 more为获取该文件中的信息,其中 ` 为漂号 不是单引号,需要切换为英文才能打出来
kill -USR1 `more /usr/local/nginx/logs/nginx.pid`

2、nginx命令行控制

nginx版本更新:

方案一:使用nginx服务信号进行升级

先将sbin下的nginx-old 老版本进行备份

cd /usr/local/nginx/sbin
mv nginx nginxold

 将nginx-new新版本安装目录编译后的objs目录下的nginx文件,拷贝到/usr/local/nginx/sbin目录下。

cd /../nginx-1.26.2/objs
cp nginx /usr/local/nginx/sbin

发送USR2信号给nginx-old对应的master进程

kill -USR2 `more /usr/local/logs/nginx.pid`

 发送QUIT信号给nginx-old对应的master进程。

kill -QUIT `more /usr/local/logs/nginx.pid.oldbin`

方案二:使用make命令进行更新。

第一步和第二步与方案一相同。

第三步:进入nginx-new安装目录 执行 make upgrade

第四步:查看是否更新完成

./nginx -v

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值