首页 > 编程知识 正文

nginx常用命令,windows杀死进程命令用pid

时间:2023-05-06 02:45:16 阅读:20021 作者:4555

nginx命令行参数nginx只有几个命令行参数,完全由配置文件组成

- c/path/to/config http://www.Sina.com /

为 Nginx 指定一个配置文件,来代替缺省的。 不运行,仅测试配置文件。 nginx将检查配置文件语法是否正确,并尝试打开配置文件中引用的文件。

-t显示nginx的版本。

显示3358www.Sina.com/nginx的版本、编译器的版本和配置参数。

nginx控制信号可以使用信号系统控制主过程。 缺省情况下,nginx将主进程的pid写入/usr/local/nginx/nginx.pid文件中。 将参数传递给./configure或使用-v命令更改文件的位置。

主进程可以处理以下信号:

TERM,INT快速关闭QUIT可以冷静地关闭HUP的重装配置

用新的配置开始新的工作流程

关闭旧的工作进程USR1并重新打开日志文件USR2,以便顺利升级可执行文件。 WINCH不需要自己操作工作流程,但支持一些信号。

TERM,INT快速关闭QUIT关闭USR1并返回日志文件-V

pid

如何给主进程发送信号呢?首先要知道主进程的进程号PID?

获取PID有两个途径,

一个是,在Nginx启动后,默认在Nginx服务器安装目录下面的logs/nginx.pid文件,里面存储主进程的PID 。

#cat /usr/local/nginx/logs/nginx.pid

二个是,在Linux下面使用ps命令查看主进程的PID.

首先,Nginx服务主节点发送信号有两种方法。 第一个是使用Nginx二进制文件

nginx -s参数后面有几个选项,如stop、quit、reopen和reload。

另一种方法是使用kill命令发送信号

nginx启动、停止和重新启动命令列出所有信号名称命令:

sudo/usr/local/nginx/nginx () nginx二进制文件的绝对路径可以根据自己的安装路径来确定) ) )。

kill-l

kill -QUIT nginx的主进程号实际上是信号SIGQUIT 3

nginx启动

kill -TERM nginx的主进程号实际上是信号SIGTERM 15

nginx从容停止命令,等所有请求结束后关闭服务

kill -9 nginx的主流程号实际上是信号SIGKILL 9

如果麻烦的话,不用看进程编号,也可以用命令直接操作

其中/usr/local/nginx/nginx.pid是在nginx.conf中为pid命令设置的参数,用于存储nginx主进程号文件

kill -信号类型(帮助) cat /usr/local/nginx/nginx.pid `

例如

kill-quit ` cat/usr/local/nginx/nginx.PID ` http://www.Sina.com /

nginx重启可以分为几种类型

1 .类型简单,首先关闭流程,修改你的部署,然后重新启动流程。

kill-quit ` cat/usr/local/nginx/nginx.PID `或直接与TERM和INT

sudo /usr/local/nginx/nginx

2 .重新加载配置文件,不重新启动进程,不停止处理请求

顺利更新nginx二进制文件,不停止处理请求

nginx 快速停止命令,立刻关闭nginx进程和kwdmn是用于平滑更改nginx配置的选项。 请注意,在重新加载之前必须测试配置文件。

# nginx-t-c/etc/nginx/nginx.conf 2006/09/161:07336010 [ info ] 15686 # 0: theconfigurationfile/et

c/nginx/nginx.conf syntax is ok2006/09/16 13:07:10 [info] 15686#0: the configuration file /etc/nginx/nginx.conf was tested successfully如果-q和-t联用,配置文件无错误,将不输出上面的内容。-q suppress non-error messages during configuration testing 测试配置时只显示错误所以在测试的时候可以 -q -t -c 三个参数一起使用#ps aux | egrep '(PID|nginx)'USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDroot      2213  0.0  0.0   6784  2036 ?        Ss   03:01   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf# kill -HUP 2213

当 nginx 接收到 HUP 信号,它会尝试先解析配置文件(如果指定配置文件,就使用指定的,否则使用默认的),成功的话,就应用新的配置文件(例如:重新打开日志文件或监听的套接 字)。之后,nginx 运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字但是继续为当前连接的客户提供服务。所有客户端的服务完成后,旧的工作进程被关闭。 如果新的配置文件应用失败,nginx 将继续使用旧的配置进行工作。

 

平滑升级

为了实现Nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致,建议在安装新服务器之前先备份旧服务器,

可以在不中断服务的情况下 - 新的请求也不会丢失,使用新的 nginx 可执行程序替换旧的(当升级新版本或添加/删除服务器模块时)。首先,使用新的可执行程序替换旧的(最好做好备份),,依次启动新的主进程和新的工作进程:

在upgrade过程中,还涉及到3个信号(USR2、WINCH和QUIT)。

首先发送USR2信号给原master,原master进程会额外启动一个master进程和若干worker进程,新旧worker进程同时提供对外服务。

第二步发送WINCH信号,原worker进程停止服务并退出。

最后发送QUIT信号给原master使之退出,只保留新的master和worker。

1.备份旧程序,下载新程序

备份原有的/usr/local/nginx下的所有文件,打包压缩到本地目录下

#tar  -czvf   old_nginx.tar.gz  /usr/local/nginx/

首先下载新的Nginx从http://nginx.org/网站,下载解压

还是一套流程,configure,make,make install,其中

#./configure  --prefix=/usr/local/nginx             ##新的服务器安装路径应该和旧的保持一致

# make && make install

2.首先发USR2给旧版本的Nginx主进程号

 #kill -USR2  `cat /usr/local/nginx/logs/nginx.pid`    旧版本的Nginx主进程号

这个时候/usr/local/nginx/logs/nginx.pid无任何变化。

3.然后执行新的可执行程序

#/usr/local/nginx/sbin/nginx

主进程将重命名它的 .pid 文件为.oldbin (比如:/usr/local/nginx/logs/nginx.pid.oldbin)

  PID  PPID USER    %CPU   VSZ WCHAN  COMMAND33126     1 root     0.0  1164 pause  nginx: master process /usr/local/nginx/sbin/nginx33134 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)33135 33126 nobody   0.0  1380 kqread nginx: worker process (nginx)33136 33126 nobody   0.0  1368 kqread nginx: worker process (nginx)36264 33126 root     0.0  1148 pause  nginx: master process /usr/local/nginx/sbin/nginx36265 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36266 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36267 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)

在这时,两个 nginx 实例会同时运行,一起处理输入的请求。要逐步停止旧的实例,你必须发送 WINCH 信号给旧的主进程,然后,它的工作进程就将开始从容关闭:

 

  PID  PPID USER    %CPU   VSZ WCHAN  COMMAND33126     1 root     0.0  1164 pause  nginx: master process /usr/local/nginx/sbin/nginx33135 33126 nobody   0.0  1380 kqread nginx: worker process is shutting down (nginx)36264 33126 root     0.0  1148 pause  nginx: master process /usr/local/nginx/sbin/nginx36265 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36266 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36267 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)

一段时间后,旧的工作进程处理了所有已连接的请求后退出,就仅由新的工作进程来处理输入的请求了:

 

  PID  PPID USER    %CPU   VSZ WCHAN  COMMAND33126     1 root     0.0  1164 pause  nginx: master process /usr/local/nginx/sbin/nginx36264 33126 root     0.0  1148 pause  nginx: master process /usr/local/nginx/sbin/nginx36265 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36266 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)36267 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)

恢复到以前

旧的服务器还尚未关闭它监听的套接字,所以可以恢复旧的服务器:

发送 QUIT 信号给新的主进程,要求其从容关闭其工作进程发送 TERM 信号给新的主进程,迫使其退出如果因为某些原因新的工作进程不能退出,向其发送 KILL 信号

新的主进程退出后,旧的主进程会由移除 .oldbin 前缀,恢复为它的 .pid 文件,一切就都恢复到升级之前了。

在发送WINCH信号之前,可以随时停止新的Nginx服务

升级成功

如果升级成功,那必然要关闭旧的服务器进程,发送 QUIT 信号给旧的主进程使其退出而只留下新的服务器运行:

 

      PID  PPID USER    %CPU   VSZ WCHAN  COMMAND    36264     1 root     0.0  1148 pause  nginx: master process /usr/local/nginx/sbin/nginx    36265 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)    36266 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)    36267 36264 nobody   0.0  1364 kqread nginx: worker process (nginx)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。