Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288260
  • 博文数量: 57
  • 博客积分: 965
  • 博客等级: 准尉
  • 技术积分: 736
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-24 10:22
文章分类

全部博文(57)

文章存档

2014年(2)

2013年(22)

2012年(25)

2011年(8)

分类: LINUX

2012-11-23 12:05:52

工作中经常需要Kill多个进程,如果这些进程有共同的特点,就可以用一条命令Kill掉它们。

比如清除Oracle数据库的所有远程连接进程:  

ps -efww|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9   

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

下面说说用管道符联接起来的几个命令:  

“ps -efww”是Red Hat 7.0里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。  

“grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。  

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。  

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。  

“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行。

 

有时候查找出来的进程很多,都是一列几十个,可以使用awk 匹配打印和 xargs kill -9 配合一次性批量杀掉。

阅读(2532) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~