shell - 如何杀死所有匹配名称的进程?

标签 shell command-line kill

假设我想终止所有包含单词 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

最佳答案

来自man 1 pkill

-f     The pattern is normally only matched against the process name.
       When -f is set, the full command line is used.

这意味着,例如,如果我们在 ps aux 中看到这些行:

apache   24268  0.0  2.6 388152 27116 ?        S    Jun13   0:10 /usr/sbin/httpd
apache   24272  0.0  2.6 387944 27104 ?        S    Jun13   0:09 /usr/sbin/httpd
apache   24319  0.0  2.6 387884 27316 ?        S    Jun15   0:04 /usr/sbin/httpd

我们可以使用 pkill -f 选项杀死它们:

pkill -f httpd

关于shell - 如何杀死所有匹配名称的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381229/

相关文章:

bash - 为什么这个 kill 在此 Bash 脚本中不起作用,而只在脚本之外起作用?

linux - 如何将脚本的输出保存在ansible 2.0.2文件中

shell - grep 从下到上,不带 tac

java - 使用 main() 方法运行数据库适配器测试

macos - 如何将守望者触发器的输出定向到 OS X 上的终端而不是守望者日志文件

powershell - 停止循环的Powershell脚本并杀死由它启动的远程进程

linux - [: missing `]' error in Unix | shell Script

linux - 如何使用 AWK 或 Sed 在 x 个单词后插入换行符\n

python - 为什么语法 "main.py < input.txt"不起作用

linux - 当父进程被 "kill -9"杀死时,子进程是否也会被杀死?