Linux之kill命令

Posted 锦衣admin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之kill命令相关的知识,希望对你有一定的参考价值。

Linux之kill命令

kill 命令

kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。

一般情况下,终止一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就须用 kill 命令来终止

查看可用信号:

  • 说明:这些信号中只有第 9 种信号(SIGKILL)才可以无条件的终止进程,其他信号进程都有权利忽略
# 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

常用信号:

代号信号值描述
1SIGHUP启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动。
2SIGINT相当于用键盘输入 [ctrl]-c 来中断一个程序的进行。
9SIGKILL代表强制中断一个程序的进行,如果该程序进行到一半,那么尚未完成的部分可能会有“半产品”产生,类似 vim会有 .filename.swp 保留下来。
15SIGTERM以正常的方式来终止该程序。由于是正常的终止,所以后续的动作会将他完成。不过,
如果该程序已经发生问题,就是无法使用正常的方法终止时,输入这个 signal 也是没有用的。
19SIGSTOP相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行
# kill -15 pid			
# kill pid				=>	两者等价,默认发送15给程序。让程序正常退出,这样程序就可以正常清理并释放资源


# kill -9 pid			=>	强制结束进程,这样结束掉的进程不会进行资源的清理工作

基本语法:

# kill [option] pid
	选项说明:
		-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

		-a  当处理当前进程时,不限制命令名和进程号的对应关系
		
		-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
		
		-s  指定发送信号
		
		-u  指定用户 

killall 命令

如果在使用killall 命令的时候提示:-bash: killall: command not found

# yum install psmisc -y 		=>	安装完这个软件就有了

killall命令用于杀死指定名字的进程(kill processes by name),即结束同名的的所有进程。在使用kill命令终止进程需要先获取进程PID,而使用killall命令直接使用进程名称,即可终止进程。

以上是关于Linux之kill命令的主要内容,如果未能解决你的问题,请参考以下文章

LINUX系统编程之IPC

Linux使用kill命令的注意事项

Linux之kill命令

Linux之kill命令

Linux之信号详解

Linux之信号详解