kill
命令用途
一般情况下,终止一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就须用 kill 命令来终止。我们会先使用 ps、top 等命令获得进程的 PID,然后使用 kill 命令来杀掉该进程。
kill 命令是用来向进程发送信号的
代号 | 名称 | 含义 |
---|---|---|
1 | SIGHUP | 启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动 |
2 | SIGINT | 相当于键盘输入ctrl+c中断程序进行 |
9 | SIGKILL | 强制终止进程,慎用 |
15 | SIGTERM | 终止进程,默认kill使用该信号 |
19 | SIGSTOP | 暂停进程,如ctrl+z |
1.命令格式:
kill[参数] [ 进程号]
2.参数:
- -l 列出全部信号名称
- -a 当处理当前进程时,不限制命令名和进程号的对应关系
- -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
- -s 指定发送信号
- -u 指定用户
killall
1.命令格式:
killall[参数] [进程名]
2.命令功能:
用来杀死同名的所有进程
3.命令参数:
用来结束同名的的所有进程
- -Z 只杀死拥有scontext 的进程
- -e 要求匹配进程名称
- -I 忽略小写
- -g 杀死进程组而不是进程
- -i 交互模式,杀死进程前先询问用户
- -l 列出所有的已知信号名称
- -q 不输出警告信息
- -s 发送指定的信号
- -v 报告信号是否成功发送
- -w 等待进程死亡
- --help 显示帮助信息
- --version 显示版本显示
例:
[root@beua ~]# killall -9 bash #把所有登陆的shell杀掉
pkill
- -o 仅找到的最小进程号发送信号
- -n 仅向找到的最大进程号发送信号
- -P 指定父进程号发送信号
- -g 指定进程号
- -t 指定开启进程的终端
[root@beua ~]# pkill nginx #跟上进程名称(批量)
[root@beua ~]# pkill -9 -t pts/0
[root@beua ~]# ps aux|grep nginx |grep -v grep|awk '{print $2}'|sed -r 's#(.*)#kill \1#g'|bash
批量杀死进程
[root@beua ~]# kill 18788
默认kill进程父进程,这样才能彻底的杀掉该进程. 否则如果只是kill子进程,没有用
[root@beua ~]# kill -1 20154
重载配置,PID号不会发生变化. 只要PID发生变化说明进程被停止过