【发布时间】:2011-09-16 21:31:16
【问题描述】:
假设我想杀死所有包含单词 amarok 的进程。我可以打印出我想要执行的命令。但是我实际上如何让 shell 执行它们。即。
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
【问题讨论】:
-
在命令行的其余部分后添加
| sh -x? -
永远不要在进程上使用
kill -9请参阅[进程管理][1] [1]:mywiki.wooledge.org/…... -
那篇关于不使用
-9的文章非常无用——有没有更好的信息说明人们为什么不应该使用它?它只是说“不要,解雇使用它的人”;但我在其他地方看到的只是kill -9 {pid}是如何杀死某些东西...... -
来自
man kill: kill -9 发送 SIGKILL 信号。这是non-catchable, non-ignorable kill。这意味着应用程序将无法清理并正确保存进度。 -
通常当我想杀死一个进程时,因为它卡住了,并且它没有响应任何其他的杀死命令。我真正使用 kill 命令的唯一一次是如果某些东西被严重冻结,然后我用 -9 强制它。
标签: shell command-line kill