Linux 命令 - kill: 向进程发送信号

淺唱寂寞╮ 提交于 2020-01-22 00:09:34

kill 命令通常用来 “杀死”(终止)进程,它可以用来终止运行不正常的程序或者反过来拒绝终止的程序。kill 命令准确地说并不是 “杀死” 进程,而是给进程发送信号(signal)。

和文件一样,进程也有所有者,只有进程的所有者(或超级用户)才能使用 kill 命令来向它发送信号。

 

命令格式

kill [-s signal|-p] [--] pid...

kill -l [signal]

 

命令参数

-s signal
  指定发送的信号。

-l
  打印信号的名称列表。

 

常用信号

  信号编号     信号名   含义
1 HUP  挂起信号
2 INT  中断信号
3 QUIT  退出信号
9 KILL  杀死信号
11 SEGV  段错误信号
15 TERM  终止信号,kill命令默认发送的信号类型
18 CONT  继续运行信号,恢复之前接受了STOP信号的进程 
19 STOP  暂停信号

 

实例

a) 查看所有信号名称及对应的编号。

[huey@huey-K42JE ~]$ 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	

b) 暂停 PID 为 57573 的进程。

[huey@huey-K42JE ~]$ ping example.com > /dev/null &
[1] 57573
[huey@huey-K42JE ~]$ jobs -l
[1]+ 57573 Running                 ping example.com > /dev/null &
[huey@huey-K42JE ~]$ kill -STOP 57573

[1]+  Stopped                 ping example.com > /dev/null
[huey@huey-K42JE ~]$ jobs -l
[1]+ 57573 Stopped (signal)        ping example.com > /dev/null

c) 终止 PID 为 57622 的进程。

[huey@huey-K42JE ~]$ ping example.com > /dev/null &
[1] 57622
[huey@huey-K42JE ~]$ jobs -l
[1]+ 57622 Running                 ping example.com > /dev/null &
[huey@huey-K42JE ~]$ kill 57622
[huey@huey-K42JE ~]$ jobs -l
[1]+ 57622 Terminated              ping example.com > /dev/null

 

相关命令

killall - 通过进程名向进程发送信号

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!