【范例80】杀死同名所有进程。
[root@localhost ~]# ps -A //显示所有的进程
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 ksoftirqd/0
3 ? 00:00:00 watchdog/0
4 ? 00:00:00 events/0
5 ? 00:00:00 khelper
6 ? 00:00:00 kthread
8 ? 00:00:00 kacpid
//此处省略了部分结果
3355 ? 00:00:17 gnome-terminal
3357 ? 00:00:00 gnome-pty-helpe
3358 pts/2 00:00:00 bash
3377 pts/2 00:00:03 joe
6734 pts/1 00:00:00 ps
[root@localhost ~]# killall joe //杀死joe同名的所有进程
[root@localhost ~]# killall joe //杀死同名的所有进程
joe: no process killed
[root@localhost ~]# ps -A //显示进程
PID TTY TIME CMD
1 ? 00:00:01 init
2 ? 00:00:00 ksoftirqd/0
3 ? 00:00:00 watchdog/0
4 ? 00:00:00 events/0
5 ? 00:00:00 khelper
6 ? 00:00:00 kthread
8 ? 00:00:00 kacpid
61 ? 00:00:00 kblockd/0
//此处省略了部分结果
3345 ? 00:00:00 notification-ar
3347 ? 00:00:03 clock-applet
3349 ? 00:00:36 mixer_applet2
3355 ? 00:00:17 gnome-terminal
3357 ? 00:00:00 gnome-pty-helpe
3358 pts/2 00:00:00 bash
6739 pts/1 00:00:00 ps
[root@localhost ~]#
本例使用指令ps -A,显示当前系统下正在运行的所有进程,其中有一个正在运行的进程的名称为“3377 pts/2 00:00:03 joe”。本例使用指令killall joe,杀死所有的同名进程,然后在运行指令ps -A,发现joe指令已被杀死。
【范例81】向进程发送指定信号。
[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 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
[root@localhost ~]# joe & //后台运行joe指令
[2] 6806
[root@localhost ~]# Processing '/etc/joe/joerc'...done
Processing '/etc/joe/joerc'...done
[2]+ Stopped joe
[root@localhost ~]# killall -TERM joe //杀死joe指令
[root@localhost ~]#
本例使用指令“kill –l”,显示所有的信号信息。使用指令killall -TERM joe,杀死所有的名为joe的指令。
【相关指令】
kill