分析:
kill -15 `ps -eaf | grep -v grep | grep -i nodemanager | awk '{print $2}'`
这句代码的含义
1.
关于grep:
grep全称是Global Regular Expr
说明:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
-v 反转查找,那么grep -v grep意思即:过滤掉包含有grep字符的行;
-i 不区分大小写,那么grep -i nodemanager意思即:查找包含nodemanager的行;
2.
关于awk:
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,awk '{print $n}' 中的$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"。
awk '{print $2}'意思:打印查找出来的内容的第二个域;
3.
关于ps:
-a 显示所有进程 ;
-e 等价于-A,显示所有进程;
-f 全部列出,通常和其他参数一起使用;
ps -eaf意思:显示所有进程;
4.
关于kill:
kill -15 pid中,-15是正常kill进程,pid是进程号;
kill -9 pid中,-9是强制kill进程,pid是进程号;
综上,代码
ps -eaf | grep -v grep | grep -i nodemanager | awk '{print $2}'
的含义是:
查找所有带有字符串“nodemanager” 而且不包含字符串“grep”的进程,并打印查找结果的第二个域(也就是进程的pid);
kill -15 `ps -eaf | grep -v grep | grep -i nodemanager | awk '{print $2}'`