Linux shell kill命令
Linux shell kill 命令用于删除执行中的程序或工作。
kill
kill可将指定的信息送至程序。
预设的信息为 SIGTERM(15)
,可将指定程序终止。
若仍无法终止该程序,可使用 SIGKILL(9)
信息尝试强制删除程序。
程序或工作的编号可利用 ps
指令或 jobs
指令查看。
kill 命令语法格式
kill [-s <信息名称或编号>][程序]
kill [-l <信息编号>]
选项
- -l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
- -s <信息名称或编号> 指定要送出的信息。
- [程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
范例
首先创建并执行一个 w.sh
的无限循环小程序
#!/bin/bash # filename: demo.sh # author:简单编程 # url:www.twle.cn while : do echo "1" > /dev/null done
使用 sh w.sh &
执行
[root@localhost shell]# sh w.sh & [2] 1142
可以看到进程编号是 1142
范例 1. 杀死进程
[root@localhost shell]# kill 1142 [root@localhost shell]# ps aux | grep w.sh root 1139 0.0 0.1 124008 1588 pts/0 T 00:13 0:00 vi w.sh root 1146 0.0 0.0 112660 980 pts/0 S+ 00:16 0:00 grep --color=auto w.sh [root@localhost shell]#
范例 2. 强制杀死进程
[root@localhost shell]# sh w.sh & [2] 1148 [root@localhost shell]# kill -KILL 1148 [root@localhost shell]# ps aux | grep w.sh root 1139 0.0 0.1 124008 1588 pts/0 T 00:13 0:00 vi w.sh root 1150 0.0 0.0 112660 980 pts/0 S+ 00:17 0:00 grep --color=auto w.sh [2]- Killed sh w.sh
范例 3. 发送 SIGHUP 信号,可以使用一下信号
[root@localhost shell]# sh w.sh & [2] 1151 [root@localhost shell]# kill -HUP 1151 [root@localhost shell]# ps aux | grep w.sh root 1139 0.0 0.1 124008 1588 pts/0 T 00:13 0:00 vi w.sh root 1153 0.0 0.0 112660 976 pts/0 R+ 00:18 0:00 grep --color=auto w.sh [2]- Hangup sh w.sh
范例 4. 彻底杀死进程
[root@localhost shell]# sh w.sh & [2] 1154 [root@localhost shell]# kill -9 1154 [root@localhost shell]# ps aux | grep w.sh root 1139 0.0 0.1 124008 1588 pts/0 T 00:13 0:00 vi w.sh root 1156 0.0 0.0 112660 976 pts/0 R+ 00:19 0:00 grep --color=auto w.sh [2]- Killed sh w.sh
范例 5. 显示系统支持的信号
[root@localhost shell]# 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
范例 6. 杀死指定用户所有进程
todo: