Linux kill命令的用法(非常详细)
从字面来看,kill 就是用来杀死进程的命令。但是,根据不同的信号,kill 命令可以完成不同的操作,其格式如下:
	
kill 命令是按照 PID 来确定进程的,因此 kill 命令只能识别 PID,不能识别进程名。下面举几个例子来说明一下 kill 命令。
【示例 1】标准 kill 命令。
【实例 2】杀死 PID 为 1513 的 httpd 进程,使用信号 9(强制):
【实例 3】使用信号 1 让主进程重新加载配置并重启子进程:
	
	
[root@localhost ~]# kill [信号] PID这里介绍一下常见的信号,如下表所示:
| 信号代号 | 信号名 | 说明 | 
|---|---|---|
| 1 | SIGHUP | 该信号让进程立即关闭,在重新读取配置文件之后重启 | 
| 2 | SIGINT | 程序终止信号,用于终止前台进程。相当于输出 Ctrl+C 快捷键 | 
| 8 | SIGFPE | 在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误 | 
| 9 | SIGKILL | 用来立即结束程序的运行。该信号不能被阻塞、处理和忽略。一般用于强制终止进程 | 
| 14 | SIGALRM | 时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号 | 
| 15 | SIGTERM | 正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这个信号是无法正常终止进程的,这时我们才会尝试使用 SIGKILL 信号,也就是信号 9 | 
| 18 | SIGCONT | 该信号可以让暂停的进程恢复执行。该信号不能被阻断 | 
| 19 | SIGSTOP | 该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。该信号不能被阻断 | 
【示例 1】标准 kill 命令。
# 启动 RPM 包默认安装的 Apache 服务
[root@localhost ~]# systemctl start httpd.service
# 查看 httpd 的进程树及 PID
# 使用 pstree 查询;grep 排除自身
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(1472)-+-httpd(1473)
              |-httpd(1475)-+-{httpd}(1478)
              |-{httpd}(1479)
              |-{httpd}(1480)
              |-{httpd}(1481)
              |-{httpd}(1482)
              |-{httpd}(1483)
              |-{httpd}(1484)
              |-{httpd}(1485)
...省略部分输出...
【实例 2】杀死 PID 为 1513 的 httpd 进程,使用信号 9(强制):
[root@localhost ~]# kill -9 1513
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(1472)-+-httpd(1473)
              |-httpd(1475)-+-{httpd}(1478)
                            |-{httpd}(1479)
                            |-{httpd}(1480)
                            |-{httpd}(1481)
                            |-{httpd}(1482)
                            |-{httpd}(1483)
                            |-{httpd}(1484)
                            |-{httpd}(1485)
【实例 3】使用信号 1 让主进程重新加载配置并重启子进程:
[root@localhost ~]# kill -1 1472
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(1472)-+-httpd(1774)
              |-httpd(1775)-+-{httpd}(1818)
                            |-{httpd}(1819)
                            |-{httpd}(1820)
                            |-{httpd}(1821)
                            |-{httpd}(1822)
主 httpd 进程(1472)没变,子 httpd 进程的 PID 都更换了,说明 httpd 进程已重启一次。 
	 ICP备案:
 ICP备案: 公安联网备案:
 公安联网备案: