table of Contents
Preface
In some restart scripts, we can often see that after killing the process, it will sleep for a period of time. Why? Next, let us study
the reason
We know that the kill command sends a specified signal to the corresponding process. The working principle of the kill command is to send a system operation signal and the process identification number of a program to the kernel of the Linux system, and then the system kernel can specify the process identification number Process to operate. We usually use 15 (SIGTERM) and 9 (SIGKILL), there is no information number, the default is 15
The meaning of 9 and 15:
9 (KILL):杀死一个进程,强行终止一个进程,这可能会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。
15 (TERM):正常停止一个进程,这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源,相当于让进程正常终止。
From this, we can infer that the kill process does not take effect immediately, but has a certain delay.
Among all kill signals, except for 9 to terminate the process unconditionally, other signals may be blocked or ignored, and even for signal 9, it will be placed in the pending queue first, and will not take effect until the next CPU scheduling, so generally After we kill the process, we will sleep for a while to ensure that the process is killed, otherwise the process may not be killed and the restart will fail.
Extra: we can use kill -l to view all kill signal values
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