【linux】kill命令信号总结

kill 命令的详细总结,除了kill -9 还有很多

1.终止进程的一般做法

在运行程序时要对某些程序进程进行终止操作,可以使用kill命令和对应的pid号进行处理,这种方法对于后台运行的程序特别有用:
ps -a 列出所有进程:

  PID TTY          TIME CMD
 2946 pts/20   00:13:11 python
 3523 pts/27   00:00:00 ps

或者使用管道来获取对应应用程序的进程号:
ps | grep python
2946 pts/20 00:13:55 python

随后就可以使用kill来关闭这一程序了:
kill -9 2946

但是,kill命令除了-9外还有很多的用途:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

2.kill 的sigspec的详细内容

在终端中输入kill -l会看到除了-9外还有很多其他的信号:

 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

其中9是立即结束进程的信号不能被阻塞处理,而安全结束进程的信号可以使用15,这个信号可以被阻塞处理。
更详细的Linux 标准信号可以在这里找到。
最早定义的常用信号:

 Signal     Value     Action   Comment
   ──────────────────────────────────────────────────────────────────────
   SIGHUP        1       Term    Hangup detected on controlling terminal
                                 or death of controlling process 终端控制信号
   SIGINT        2       Term    Interrupt from keyboard  键盘终止信号
   SIGQUIT       3       Core    Quit from keyboard   键盘quit信号
   SIGILL        4       Core    Illegal Instruction       
   SIGABRT       6       Core    Abort signal from abort(3)   
   SIGFPE        8       Core    Floating point exception  浮点数错误
   SIGKILL       9       Term    Kill signal    结束信号
   SIGSEGV      11       Core    Invalid memory reference  无效内存,访问错误
   SIGPIPE      13       Term    Broken pipe: write to pipe with no   
                                 readers
   SIGALRM      14       Term    Timer signal from alarm(2)   时钟信号
   SIGTERM      15       Term    Termination signal              终止信号
   SIGUSR1   30,10,16    Term    User-defined signal 1     
   SIGUSR2   31,12,17    Term    User-defined signal 2  
   SIGCHLD   20,17,18    Ign     Child stopped or terminated    子进程结束信号
   SIGCONT   19,18,25    Cont    Continue if stopped
   SIGSTOP   17,19,23    Stop    Stop process        进程终止
   SIGTSTP   18,20,24    Stop    Stop typed at terminal    
   SIGTTIN   21,21,26    Stop    Terminal input for background process
   SIGTTOU   22,22,27    Stop    Terminal output for background process    后端进程信号

ref:
https://linode.com/docs/tools-reference/tools/use-killall-and-kill-to-stop-processes-on-linux/
https://www.zhihu.com/question/23747655
https://www.geeksforgeeks.org/kill-command-in-linux-with-examples/
https://www.linux.com/learn/intro-to-linux/2017/5/how-kill-process-command-line
https://stackoverflow.com/questions/1624691/linux-kill-background-task/1624730
https://blog.csdn.net/king16304/article/details/52211206
https://blog.csdn.net/Shawei_/article/details/81288938

Linux中的kill命令用于终止指定的进程的运行。它通过向进程发送信号来结束相应进程。默认情况下,kill命令发送编号为15的TERM信号,这将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程,可以使用编号为9的kill信号,强制终止该进程。\[1\] 在使用kill命令时,需要先获取要终止进程的PID,可以使用ps、pidof、pstree、top等工具来获取。然后使用kill命令加上PID来终止相应的进程。例如,使用kill -9 PID命令可以强制终止指定PID的进程。\[1\] 需要注意的是,有些进程可能具有特殊权限或保护机制,导致无法通过kill命令终止。在这种情况下,可能需要使用sudo命令来提升权限,以便成功终止进程。\[2\] 总结起来,Linux中的kill命令是用于终止指定进程的常用命令。它通过发送信号给进程来结束其运行。默认情况下,使用编号为15的TERM信号,但也可以使用编号为9的kill信号来强制终止进程。\[3\] #### 引用[.reference_title] - *1* [每天一个linux命令(42):kill命令](https://blog.csdn.net/peida/article/details/103397370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linuxkill 命令](https://blog.csdn.net/Dancen/article/details/117299111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Linux 中的 kill 命令](https://blog.csdn.net/Toml_/article/details/130886225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值