LinuxSir.cn,穿越时空的Linuxsir!

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

如何用进程名做参数而不用pid杀死进程?

[复制链接]
发表于 2005-5-11 09:26:58 | 显示全部楼层 |阅读模式
遇到一个问题----

在不知道pid只知道名称的情况下如何杀死该进程?
kill -TERM  procname ????

好像不行!!!

怎么用脚本实现???
发表于 2005-5-11 09:37:11 | 显示全部楼层
killall
回复 支持 反对

使用道具 举报

发表于 2005-5-11 09:42:41 | 显示全部楼层
ps -e | awk '{if ($4 == "xxxxx"){print $1}}' |xargs kill -9 >/dev/null 2>&1
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-11 10:25:06 | 显示全部楼层
#! /bin/sh
id=pidof hcid       
echo "$id"
kill $pid

这么写不行,有错??
回复 支持 反对

使用道具 举报

发表于 2010-4-20 00:30:24 | 显示全部楼层
Post by bbbush;1147671
killall


用法: killall [选项]... [--] 进程名...
      killall -l, --list
      killall -V, --version

  -e,--exact          对长名字需要严格匹配
  -I,--ignore-case    匹配进程名时忽略大小写
  -g,--process-group  杀死进程组而不是进程
  -i,--interactive    在杀死进程前要求确认
  -l,--list           显示所有的信号名
  -q,--quiet          不要打印抱怨信息
  -r,--regexp         将 "进程名" 视为扩展正则表达式
  -s,--signal 信号    发送 "信号" 而不是 SIGTERM
  -u,--user 用户      仅杀死 "用户" 的进程
  -v,--verbose        信号成功送出时打印信息
  -V,--version        显示版本信息
  -w,--wait           等待进程死亡

$ killall -u crazypenguin -vier stardic
杀死 stardict(9336) ? (y/N) y
stardict(9336) 被信号 15 杀死
杀死 stardict(9363) ? (y/N) y
stardict(9363) 被信号 15 杀死
杀死 stardict(9536) ? (y/N) y
stardict(9536) 被信号 15 杀死
杀死 stardict(10529) ? (y/N) y
stardict(10529) 被信号 15 杀死
回复 支持 反对

使用道具 举报

发表于 2010-4-20 15:32:02 | 显示全部楼层
pgrep,  pkill  -  look  up  or  signal  processes  based on name and other
       attributes
回复 支持 反对

使用道具 举报

发表于 2010-4-20 18:34:53 | 显示全部楼层
好像使用zsh时,可以使用进程名自动补全pid,可以去看看那部分源码
回复 支持 反对

使用道具 举报

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

本版积分规则

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