一、kill各信号量的含义
列出kill命令所有的信号量
# kill -l
信号量 | 说明 |
1) SIGHUP | 终端挂起或者控制进程终止 |
2) SIGINT | 键盘中断(如break键被按下) |
3) SIGQUIT | 键盘的退出键被按下 |
4) SIGILL | 非法指令 |
6) SIGABRT | 由abort(3)发出的退出指令 |
8) SIGFPE | 浮点异常 |
9) SIGKILL | Kill信号 |
11) SIGSEGV | 无效的内存引用 |
13) SIGPIPE | 管道破裂: 写一个没有读端口的管道 |
14) SIGALRM | 由alarm(2)发出的信号 |
15) SIGTERM | 终止信号 |
10) SIGUSR1 | 用户自定义信号1 |
12) SIGUSR2 | 用户自定义信号2 |
17) SIGCHLD | 子进程结束信号 |
18) SIGCONT | 进程继续(曾被停止的进程) |
19) SIGSTOP | 终止进程 |
20) SIGTSTP | 控制终端(tty)上按下停止键 |
21) SIGTTIN | 后台进程企图从控制终端读 |
22) SIGTTOU | 后台进程企图从控制终端写 |
二、kill命令格式
kill [-s 信号名称 | -n 信号编号 ] [ -a ] 进程号
-s 指定需要送出的信号,既可以是信号名也可以对应数字。
-n 指定需要送出的信号编号
-l 显示信号名称列表。
如果不指定,则默认发送SIGTERM, 即kill -15,也就是优雅的kill,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的。这时候,应用程序可以选择:
1、立即停止程序
2、释放响应资源后停止程序
3、忽略该信号,继续执行程序
kill -9就强硬一点,系统会发出SIGKILL信号,他要求接收到该信号的程序应该立即结束运行,不能被阻塞或者忽略。应用程序是没有时间进行"准备工作"的,所以这通常会带来一些副作用,数据丢失或者终端无法恢复到正常状态等。
三、sysmonitor
sysmonitor 是一款系统运维监控软件,支持监控系统磁盘、CPU、内存、进程 / 线程数量、句柄数量等系统资源使用情况,支持监控关键进程并在其异常时将其恢复,支持监控文件系统异常,支持监控记录系统网卡和文件被操作日志,支持自定义监控,执行用户监控动作。
1、在已经安装了sysmonitor工具的系统中配置监控的信号量,可根据需要选择配置。
/etc/sysmonitor/signal
2、重启sysmonitor服务。
# systemctl restart sysmonitor
3、在/var/log/sysmonitor.log日志中可以kill信号的执行情况。
4、sysmonitor日志转储
在默认情况下,未放置sysmonitor.log日志过大,日志提供了转储机制。
转储配置为/etc/rsyslog.d/sysmonitor.conf
转储日志路径:/var/log/logdump/sysmonitor
5、应用场景
a. 系统进程被异常终止,需要抓取谁终止了。