ps -ef | grep keyword | grep -v grep | awk '{print $2}' | xargs kill -9
逐个分析:
1, ps -ef | grep keyword: 查出进程名含有 keyword 的所有进程;
2, grep -v grep: 从这些结果里面,把含有 grep 的关键词的进程去除掉, -v 就是去除的意思;
3, awk 'print $2': 就是将结果的第二列的信息打印出来;
4, xargs kill -9: xargs是将它前面命令的结果作为参数,传递给xargs后面的命令。
我们来看看前面的命令的第二列会输出什么信息。
ps -ef | grep php-fpm | grep -v grep
root 1625 1 0 10月11 ? 00:00:16 php-fpm: master process (/etc/php/5.6/fpm/php-fpm.conf)
www-data 2096 1625 0 10月11 ? 00:00:00 php-fpm: pool www
www-data 2098 1625 0 10月11 ? 00:00:00 php-fpm: pool www
从左到右的字段分别是
UID PID PPID C STIME TTY TIME CMD
UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令
第二列就是PID,进程ID。
kill -9就是强制杀死,后面的参数就是PID。
这就是一个根据进程名称杀死进程的Linux命令。