Bash - killall -r不匹配

时间:2014-03-04 16:41:13

标签: regex bash process kill-process

我有许多名称相似的进程,例如“proc_1asd,proc_2wqe,proc_3zxc”

我需要向他们发送一个非残酷的中断信号,pkill -f会起作用,但它没有安装。

我正在尝试使用killall -r proc_*,但我收到此错误

  

proc_ *:找不到进程

我的印象是我做的事非常愚蠢,但我不知道是什么。

这是一个图像(进程的实际名称是jnode_something)

Task manager screenshot

pgrep -lf 'proc_.*'返回

15070 jnode_0 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/0_config.txt Logs
15071 jnode_1 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/1_config.txt Logs
15072 jnode_2 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/2_config.txt Logs
15073 jnode_3 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/3_config.txt Logs
15074 jnode_4 -cp lib/xstream-1.4.7.jar:build/classes sandbox.GridNode Configs/4_config.txt Logs

1 个答案:

答案 0 :(得分:7)

看起来像矫枉过正,但如果你能从pgrep获得PID,只需将它们作为参数来杀死。类似的东西:

pgrep -lf 'proc_.*' | awk '{print $1}' | xargs kill -f