LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1042|回复: 7

杀死所有ping进程的shell

[复制链接]
发表于 2005-7-27 11:17:11 | 显示全部楼层 |阅读模式
刚学shell,正好这两天用到,要求杀死所有ping命令进程(可能有老兄说,禁用ping不就得了。俺是特殊用途在这儿就不解释了,呵呵)


  1. # !/bin/sh
  2. ## killping.sh


  3. ##将进程号和CMD写入aa文件
  4. ps -ef | awk '{print $2,$8}' >aa
  5. ## 筛选出有ping命令的行写入bb
  6. awk '/ping/{print}' aa >bb
  7. ## 筛选出ping命令的进程号写入cc
  8. awk -F " " '{print $1}' bb >cc
  9. ## 读入cc的每一行杀死相应的进程
  10. while read PID; do
  11.   kill -9 $PID
  12. done <cc
  13. ## 删除 aa ,bb ,cc 文件
  14. rm aa   bb   cc
复制代码
发表于 2005-7-27 12:02:28 | 显示全部楼层
Post by zhansir
刚学shell,正好这两天用到,要求杀死所有ping命令进程(可能有老兄说,禁用ping不就得了。俺是特殊用途在这儿就不解释了,呵呵)


  1. # !/bin/sh
  2. ## killping.sh


  3. ##将进程号和CMD写入aa文件
  4. ps -ef | awk '{print $2,$8}' >aa
  5. ## 筛选出有ping命令的行写入bb
  6. awk '/ping/{print}' aa >bb
  7. ## 筛选出ping命令的进程号写入cc
  8. awk -F " " '{print $1}' bb >cc
  9. ## 读入cc的每一行杀死相应的进程
  10. while read PID; do
  11.   kill -9 $PID
  12. done <cc
  13. ## 删除 aa ,bb ,cc 文件
  14. rm aa   bb   cc
复制代码


简单一点的可以用pkill和killall命令来完成。另外利用pipe还可以这样:

  1. ps -aef|grep sleep|grep -v grep |awk '{print $2}' | xargs -ti kill -9 {}
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-7-27 12:04:15 | 显示全部楼层
Post by yongjian
简单一点的可以用pkill和killall命令来完成。另外利用pipe还可以这样:

  1. ps -aef|grep sleep|grep -v grep |awk '{print $2}' | xargs -ti kill -9 {}
复制代码

注:那个sleep命令只是一个例子,换成你要kill的命令就行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-27 12:21:15 | 显示全部楼层
谢谢指导,继续学习……
回复 支持 反对

使用道具 举报

发表于 2005-7-27 12:35:33 | 显示全部楼层
pkill -9 '\<ping\>'
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-27 12:40:51 | 显示全部楼层
俺思路太单一了,弱
回复 支持 反对

使用道具 举报

发表于 2005-7-27 13:14:11 | 显示全部楼层
killall ping
回复 支持 反对

使用道具 举报

发表于 2005-7-27 22:18:39 | 显示全部楼层
哎~ 一个比一个强啊,俺也是只会xargs 和 楼主的那个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表