Linux是一个多任务操作系统,系统上经常同时运行着多个进程。有时,一个进程不再有用或系统资源占用过高,就可以用kill命令终止该进程。
终止一个进程
kill [option] pid
-l [SIG] 列出信号(代码)。-l后跟信号名称,就显示该信号代码;后面跟信号代码,则显示该信号名称; 若只用-l,则会列出全部信号名称 -a 当处理当前进程时,不限制命令名和进程号的对应关系 -p 指定kill命令只打印相关进程的进程号,而不发送任何信号 -s SIG 指定发送信号SIG -u 指定用户
常用信号:
HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
不带选项的kill命令会发出终止信号(15),进程捕获该信号,清理并释放资源后退出。如果使用信号(9),则强制终止进程,这会有一些副作用,如数据丢失或者终端无法恢复到正常状态。不到万不得已,不要用kill信号(9)。
[root@ibi98 ~]# ps -e |grep ftp 8983 pts/1 00:00:02 lftp [root@ibi98 ~]# kill 8983
kill -l可以显示所有信号:
[root@ibi98 ~]# 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
root用户可以终止普通用户的进程,而普通用户只能影响自己的进程。