linux操作系统的kill -9 和 kill -15 的区别

在linux操作系统中,要杀死一个进程需要使用的命令是kill。

1 kill -9 PID 强制停掉进程,不给进程使用回调函数的机会,也不会等进程处理完手上的工作,对于已经进入生产环境的系统来说,这是非常危险的。
2 kill -15 PID 在停掉进程之前调用提前写好的回调函数,或者等待进程处理完正在处理的任务之后,再停掉进程。

 

所以,kill -15 PID 与 kill -9 PID 相比,它是温柔的,当然,它的速度也会慢一些(因为要等候,不过在某些特殊情况下,他们速度会一样,如:进程一直在闲置)。

在我们自己开发程序并且不注重数据信息的完整性的时候,可以使用kill -9 PID 去杀死一个进程。而在生产环境上,最好还是使用kill -15 PID,这在一定程度上可以保证数据信息的完整性。

kill 常见的几个信号值:

信号名信号值行为
SIGHUP 1 挂起某个进程
SIGINT 2 中断某个进程
SIGKILL 9 杀死某个进程
SIGTERM 15 结束某个线程,允许该进程在结束之前执行一些清理工作
SIGSTOP 17, 19, 23 停止某个进程

kill命令的所有信号值:

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

 

posted @ 2022-12-20 19:37  莴苣&  阅读(1422)  评论(0编辑  收藏  举报