说明
kill命令用于终止进程
格式
kill [option] [pid]
常用参数
-l:列出全部的信号名称
-p:指定kill命令只打印相关进程的进程号,而不发送任何信号
-s:指定要发送的信号
示例
1、列出所有信号的名称
[root@localhost ~]# 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
注意:kill指令默认使用的信号是15,用于结束进程。如果进程忽略该信号,可以使用信号9强制终止进程。
2、终止进程
#首先通过ps来获取进程号
[root@localhost ~]# ps -aux|grep nginx
root 1580 0.0 0.1 45896 1108 ? Ss 11:41 0:00 nginx: master process /apps/nginx/sbin/nginx
nginx 1589 0.0 0.2 46756 2628 ? S 11:41 0:00 nginx: worker process
nginx 2168 0.0 2.1 374796 22004 ? S 11:41 0:00 php-fpm: pool www
nginx 2169 0.0 1.9 374792 19992 ? S 11:41 0:00 php-fpm: pool www
root 2994 0.0 0.0 112660 976 pts/1 S+ 21:13 0:00 grep --color=auto nginx
#终止进程的几种方式
[root@localhost ~]# kill 1580 #kill默认使用的信号是15,这种格式也是最常用的
[root@localhost ~]# kill -s 15 1580 #使用-s参数明确指定信号,和kill pid效果一样
[root@localhost ~]# kill -15 1580 #-s 15可以写成-15
#如果上面的方法无法终止进程,可以使用-9强制终止进程
[root@localhost ~]# kill -9 1580
3、特殊信号0说明
#kill -0 pid表示不发送任何信号给pid,但是会对pid是否存在做检验,如果pid进程存在,则返回0,否则返回1.
[root@localhost ~]# kill -0 1580 #存在的进程pid
[root@localhost ~]# echo $?
0
[root@localhost ~]# kill -0 1582 #不存在的进程pid
-bash: kill: (1582) - No such process