Linux中 ps 配合 kill 的操作

有的时候我们想要关掉一些程序的一系列进程,又不想一个一个通过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的进程,注意要给进程的全名