kill命令以及USR1信号解释(kill usr1)
nanshan 2024-10-26 11:08 17 浏览 0 评论
咱们先来看看 kill -USR1 $(cat $logpath/nginx.pid) 这条命令做了些什么
1 首先确定一下/usr/local/nginx/logs/nginx.pid 这个文件存储的是nginx的pid号, 当启动nginx这个程序时会自动生成这个文件, 当关闭nginx程序时, 这个nginx.pid的文件就会消失。
> # cat /usr/local/nginx/logs/nginx.pid
3958
##################################################################
> # nginx -s stop
> # cat /usr/local/nginx/logs/nginx.pid
cat: /usr/local/nginx/logs/nginx.pid: 没有那个文件或目录
2 $(cat $logpath/nginx.pid)相当与`cat $logpath/nginx.pid` 它拿到的是nginx的进程pid号, 我这里的是3958
那么完整命令为:kill -USR1 3958
-USR1代表什么呢, 我们接着往下看
> # 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
在linux系统中, linux是通过信号与"正在运行的进程"进行通信的。linux系统中, 也有很多预定义好的信号, 像常用的SIGHUP, SIGKILL, SIGSTOP等。
USR1对应的数字选项为 -10, 那么nginx收到USR1的信号后, 它都做了些什么
(1) nginx 的主进程收到USR1信号, 会重新打开日志文件(以nginx配置文件中的日志名称命名, 就是配置文件中access_log项所设置的值, 如果文件不存在, 会自动创建一个新的文件xxx.log)。
> # /usr/local/nginx/logbak.sh
> # ls /usr/local/nginx/logs/
access-20181103.log access.log error-20181103.log error.log nginx.pid
# 执行脚本后
(2) 然后把日志文件的拥有者改为"工作进程(worker进程)", 目的是让worker进程就具备了对日志文件的读写权限(master和worker通常以不同用户运行, 所以需要改变拥有者)。
> # ll /usr/local/nginx/logs/access.log
-rw-r--r--. 1 nginx root 0 11月 3 13:25 /usr/local/nginx/logs/access.log
> # ll /usr/local/nginx/logs/access-20181103.log
-rw-r--r--. 1 root root 204608511 11月 3 10:44 /usr/local/nginx/logs/access-20181103.log
##注意观察这两个文件的所有者不一样
(3) nginx主进程会关闭重名的日志文件(也就是刚才使用mv命令重命名成xxx.log-$date.log的文件), 并通知工作进程使用新打开的日志文件(刚才主进程打开的文件xxx.log)。
具体实现上更细化点就是, 主进程把USR1信号发给worker, worker接到这个信号后, 会重新打开日志文件(也就是配置文件中约定的xxx.log)
3 结合上面的 kill -l 命令补充一下
只有第9种信号(SIGKILL)才可以无条件终止进程, 其他信号进程都有权利忽略。 下面是常用的信号:
HUP 1 终端断线, 重新加载配置文件, 平滑升级 SIGHUP
INT 2 中断(同 Ctrl + C) SIGINT
QUIT 3 退出(同 Ctrl + \) SIGQUIT
KILL 9 强制终止 SIGKILL
USR1 10 自定义信号(通常用于文件热更新) SIGUSR1
TERM 15 终止(如果kill 命令后直接加进程的pid号, 默认选项为-15, 代表终止此进程) SIGTERM
CONT 18 继续(与STOP相反, fg/bg命令) SIGCONT
STOP 19 暂停(同 Ctrl + Z) SIGSTOP
相关推荐
- ssh终端xshell日志查看命令(xshell怎么看日志)
-
现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...
- 使用 Fail Ban 日志分析 SSH 攻击行为
-
通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...
- 如何高效读取Linux日志文件?这些命令要熟记于心!
-
在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...
- Windows服务器远程登录日志查询方法,linux查看登录日志方法
-
概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...
- iptables防火墙如何记录日志(防火墙日志查看)
-
例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...
- 如何安全管理SSH密钥以防止服务器被入侵
-
SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...
- 在CentOS上安装nginx服务器(centos搭建代理服务器)
-
一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...
- CentOS7安全加固的一份整理规划建议
-
◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...
- 第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd
-
学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...
- Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器
-
一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...
- CentOS 安全加固操作,保护你的操作系统
-
系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...
- Dockerfile部署Java项目(docker如何部署java项目)
-
1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...
- CentOS7云主机部署Fail2ban阻断SSH暴力破解
-
关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...
- 在CentOS7上用源码编译安装PostgreSQL
-
1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...
- pure-ftpd 使用(ftp prompt命令)
-
pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)