文章目录
- 1.命令简介
- 2.命令格式
- 3.选项说明
- 4.常用示例
- 5.常见信号
- 参考文献
大咖好呀,我是恋喵大鲤鱼。
鄙人第二本开源书籍《后台开发命令365》上线啦,欢迎大家协同共建。
1.命令简介
kill 用于终止进程或向进程发送指定信号。
kill 可以发送指定的信号到相应的进程或进程组。不指定信号缺省发送 SIGTERM(15)来终止指定进程。如果想强制终止进程,可以显示指定 SIGKILL(9) 信号,因为该信号无法被进程捕获。
本文介绍的是符合 POSIX 标准的 kill 功能,不同 Linux 发行版对 kill 的实现有所不同,具体参见其对应的帮助手册。
2.命令格式
kill-l[SIGNAL]kill[-s SIGNAL|-SIGNAL]PID...操作数 PID 有两种取值:
- 进程 ID 或者进程组 ID;
- 作业 ID,用于标识运行于后台的一组进程。
3.选项说明
-SIGNAL,-sSIGNAL 指定信号名或信号值。-l[SIGNAL]指定信号名或信号值,转换信号名与信号值。如果不指定信号,则列出所有信号。信号的定义见 /usr/include/linux/signal.h4.常用示例
(1)强制杀死当前 Shell 进程,退出当前会话。
echo$$20174kill-9|-KILL|-SIGKILL20174(2)根据进程名称先查找出 PID 再强制杀死。
ps-ef|grepCOMMADNAME|awk'{print $2;}'|xargskill-9也可以使用 killall 命令根据进程名称杀死进程。
killall-9COMMADNAME(3)列出所有信号。
kill-l1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP6)SIGABRT7)SIGBUS8)SIGFPE9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR213)SIGPIPE14)SIGALRM15)SIGTERM16)SIGSTKFLT17)SIGCHLD18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO30)SIGPWR31)SIGSYS34)SIGRTMIN35)SIGRTMIN+136)SIGRTMIN+237)SIGRTMIN+338)SIGRTMIN+439)SIGRTMIN+540)SIGRTMIN+641)SIGRTMIN+742)SIGRTMIN+843)SIGRTMIN+944)SIGRTMIN+1045)SIGRTMIN+1146)SIGRTMIN+1247)SIGRTMIN+1348)SIGRTMIN+1449)SIGRTMIN+1550)SIGRTMAX-1451)SIGRTMAX-1352)SIGRTMAX-1253)SIGRTMAX-1154)SIGRTMAX-1055)SIGRTMAX-956)SIGRTMAX-857)SIGRTMAX-758)SIGRTMAX-659)SIGRTMAX-560)SIGRTMAX-461)SIGRTMAX-362)SIGRTMAX-263)SIGRTMAX-164)SIGRTMAX只有信号 SIGKILL(9) 才可以无条件终止进程,其他终止信号进程都有权捕获忽略。
5.常见信号
下面是 Linux / Unix 中的常见信号:
| 信号 | 编号 | 英文全称 | 默认动作 | 触发方式 | 说明 |
|---|---|---|---|---|---|
SIGHUP | 1 | Hangup | 终止 | 终端关闭 | 挂起信号,通常用于通知进程重新加载配置 |
SIGINT | 2 | Interrupt | 终止 | Ctrl+C | 终端中断,请求进程终止 |
SIGQUIT | 3 | Quit | 终止 + core dump | Ctrl+\ | 退出信号,会生成核心转储文件 |
SIGABRT | 6 | Abort | 终止 + core dump | abort()/assert() | 异常终止,通常由程序自身调用,表示检测到严重错误(如断言失败) |
SIGKILL | 9 | Kill | 终止 | kill -9 <pid> | 强制终止,进程无法捕获或忽略 |
SIGSEGV | 11 | Segmentation Violation | 终止 + core dump | 非法内存访问 | 段错误,进程访问了未分配或受保护的内存区域 |
SIGTERM | 15 | Termination | 终止 | kill <pid> | 优雅终止,进程可以捕获并执行清理操作 |
SIGSTOP | 19 | Stop | 停止 | kill -STOP <pid> | 强制暂停,进程无法捕获或忽略 |
SIGTSTP | 20 | Terminal Stop | 停止 | Ctrl+Z | 终端停止,将进程挂起到后台 |
SIGCONT | 18 | Continue | 继续 | fg/bg | 继续执行被停止的进程 |
SIGUSR1 | 10 | User-defined Signal 1 | 终止 | 用户自定义 | 用户定义信号1 |
SIGUSR2 | 12 | User-defined Signal 2 | 终止 | 用户自定义 | 用户定义信号2 |
参考文献
kill(1) - Linux manual page - man7.org
signal(7) - Linux manual page - man7.org
LINUX Signals
Signal (IPC) - Wikipedia