有的时候我们想要关掉一些程序的一系列进程,又不想一个一个通过ps找到pid,再一个一个kill这些进程,这个时候用ps配合kill就是最好的选择了。
使用到的命令
ps
ps(process status)命令用来列出系统中当前运行的那些进程。常常使用的形式有:
- ps aux 列出目前所有的正在内存当中的程序
- ps -ef 显示所有进程信息,连同命令行
更多参考]
kill
kill 命令能够发送指定的信号到相应进程。
命令参数如下:
参数 | 作用 |
---|---|
-l | 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称 |
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s | 指定发送信号 |
-u | 指定用户 |
使用参数-s 指定发送信号。如果要无条件终止进程,就要发送第九种信号SIGKILL。以下是常用的信号:
信号 | 表示 | 作用 |
---|---|---|
HUP | 1 | 终端断线 |
INT | 2 | 中断(同 Ctrl + C) |
QUIT | 3 | 退出(同 Ctrl + \) |
TERM | 15 | 终止 |
KILL | 9 | 强制终止 |
CONT | 18 | 继续(与STOP相反, fg/bg命令) |
STOP | 19 | 暂停(同 Ctrl + Z) |
grep
grep 是一种强大的文本搜索工具。grep 也是一个管道命令,接受standard output 作为查找的文本。不作为管道命令的时候后面接文件名作为参数。
pgrep
pgrep程序检查在系统的中活动进程,报告进程属性匹配命令行上指定条件的进程的ID。相当于命令 ps aux | grep XXX
更多参考
方案
方案1
1 | ps -ef | grep chrome | grep -v grep | cut -c 10-14 | xargs kill -s 9 |
- ” grep chrome “输出所有含有关键字“chrome”的进程信息
- ” grep -v grep “ 除去含有关键字”grep“的进程信息,因为grep会产生一个进程里面含有 chrome 关键字
- ” cut -c 10-14 “ 截取输入行的第9个字符到第15个字符,而这正好是进程号PID
- ” xargs kill -s 9 “ 终止相关进程
方案2
1 | ps -ef | grep chrome | awk '{print $2}' | xargs kill -9 |
- “awk ‘awk{ print $2 }’ “使用awk 代替cut ,不用一个一个数PID在什么位置
方案3
1 | pgrep chrome | xargs kill -s 9 |
- ” pgrep chrome “列出含有关键字”chrome“的相关进程
- ” xargs kill -s 9 “ 终止相关进程
方案4
1 | killall -9 chrome |
- 终止进程名为chrome的进程,注意要给进程的全名