重识Nginx - 17 Nginx支持的信号说明


在这里插入图片描述


信号

在这里插入图片描述


kill 信号说明

Linux kill 命令用于删除执行中的程序或工作。

kill 可将指定的信息送至程序。

  • 预设的信息为 SIGTERM(15),可将指定程序终止。
  • 若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。

语法

kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]

参数说明:

  • -l <信息编号>  若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
  • -s <信息名称或编号>  指定要送出的信息。
  • [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。
  • 使用 kill -l 命令列出所有可用信号。

最常用的信号是:

  • 1 (HUP):重新加载进程。
  • 9 (KILL):杀死一个进程。
  • 15 (TERM):正常停止一个进程。

杀死进程

# kill 12345

强制杀死进程

# kill -KILL 123456

发送SIGHUP信号,可以使用一下信号

# kill -HUP pid

彻底杀死进程

# kill -9 123456

显示信号 kill -l


[root@VM-0-7-centos ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@VM-0-7-centos ~]#

信号取值默认动作含义(发出信号的原因)
SIGHUP1Term终端的挂断或进程死亡
SIGINT2Term来自键盘的中断信号
SIGQUIT3Core来自键盘的离开信号
SIGILL4Core非法指令
SIGABRT6Core来自abort的异常信号
SIGFPE8Core浮点例外
SIGKILL9Term杀死
SIGSEGV11Core段非法错误(内存引用无效)
SIGPIPE13Term管道损坏:向一个没有读进程的管道写数据
SIGALRM14Term来自alarm的计时器到时信号
SIGTERM15Term终止
SIGUSR130,10,16Term用户自定义信号1
SIGUSR231,12,17Term用户自定义信号2
SIGCHLD20,17,18Ign子进程停止或终止
SIGCONT19,18,25Cont如果停止,继续执行
SIGSTOP17,19,23Stop非来自终端的停止信号
SIGTSTP18,20,24Stop来自终端的停止信号
SIGTTIN21,21,26Stop后台进程读终端
SIGTTOU22,22,27Stop后台进程写终端
SIGBUS10,7,10Core总线错误(内存访问错误)
SIGPOLLTermPollable事件发生(Sys V),与SIGIO同义
SIGPROF27,27,29Term统计分布图用计时器到时
SIGSYS12,-,12Core非法系统调用(SVr4)
SIGTRAP5Core跟踪/断点自陷
SIGURG16,23,21Ignsocket紧急信号(4.2BSD)
SIGVTALRM26,26,28Term虚拟计时器到时(4.2BSD)
SIGXCPU24,24,30Core超过CPU时限(4.2BSD)
SIGXFSZ25,25,31Core超过文件长度限制(4.2BSD)
SIGIOT6CoreIOT自陷,与SIGABRT同义
SIGEMT7,-,7Term
SIGSTKFLT-,16,-Term协处理器堆栈错误(不使用)
SIGIO23,29,22Term描述符上可以进行I/O操作
SIGCLD-,-,18Ign与SIGCHLD同义
SIGPWR29,30,19Term电力故障(System V)
SIGINFO29,-,-与SIGPWR同义
SIGLOST-,-,-Term文件锁丢失
SIGWINCH28,28,20Ign窗口大小改变(4.3BSD, Sun)
SIGUNUSED-,31,-Term未使用信号(will be SIGSYS)

说明: linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因

在这里插入图片描述

<think>好的,我需要回答用户关于如何正确使用nginx -t和nginx -s reload来检查配置文件并Nginx的问题。首先,我应该根据用户提供的引用内容来组织步骤,确保引用正确。 首先,用户提到nginx -t可以测试配置文件是否正确,引用[2]和[4]都提到了这个命令。所以第一步应该是运行nginx -t来检查语法错误。如果测试通过,用户会看到提示,否则需要根据错误信息修改配置。 接下来是新加载配置,用户引用了nginx -s reload,这在引用[1]、[2]、[3]、[4]中都有提到。需要说明这个命令的作用是载配置而不中断服务,适用于生产环境。同时,需要注意如果使用自定义配置文件路径,需要使用-c参数指定,如引用[1]中的例子nginx -c /usr/local/etc/nginx/nginx.conf。 还要提到可能出现的问题,比如引用[3]中提到reload无效的情况,可能需要检查进程或使用其他方法停止服务再启动。另外,引用[4]提到可以用kill -HUP来发送信号给主进程,这也是另一种方法。 然后要分步骤说明操作流程,确保用户能一步步执行。同时生成相关问题,比如测试配置的其他命令、热部署原理、处理无效载的方法等,这些问题需要基于引用内容,比如引用[4]的热部署,引用[3]的无效情况处理。 最后确保整个回答结构清晰,使用正确的格式,比如命令用行内代码块,并正确添加引用标。需要检查是否有遗漏的步骤或可能的错误点,比如权限问题,或者配置文件路径是否正确,但用户提供的引用中没有提到权限,所以可能不需要涉及,除非有相关引用。根据现有引用,应该足够回答问题。</think>要正确检查Nginx配置文件语法并新加载配置,请按以下步骤操作: ### 1. 检查配置文件语法 执行命令验证配置文件语法: ```bash nginx -t ``` - 成功时显示:`syntax is ok` / `test is successful` - 失败时显示具体错误位置,需按提示修改配置文件[^2][^4] ### 2. 新加载配置 通过热部署实现无中断载: ```bash nginx -s reload ``` - 该命令会向主进程发送HUP信号 - 保持服务在线状态下加载新配置[^4] ### 3. 特殊情况处理 若使用自定义配置文件路径: ```bash nginx -t -c /path/to/nginx.conf # 检查指定文件 nginx -s reload -c /path/to/nginx.conf # 加载指定文件 ``` 若`reload`无效时: - 检查是否有残留进程:`taskkill /F /IM nginx.exe`(Windows) - 新启动服务:`nginx -s quit && start nginx`[^3] ### 完整操作示例 ```bash # 检查默认配置 nginx -t # 热载配置 nginx -s reload # 指定配置文件操作 nginx -t -c /usr/local/nginx/conf/nginx.conf nginx -s reload -c /usr/local/nginx/conf/nginx.conf ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值