Bash - killall -r不匹配

Ago*_*ino 4 regex bash process kill-process

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

我需要向他们发送一个非残酷的中断信号,pkill -f可以工作,但是没有安装.

我正在尝试使用killall -r proc_*,但是我收到了这个错误

proc_*:找不到进程

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

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

任务管理器截图

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
Run Code Online (Sandbox Code Playgroud)

小智 7

看起来像矫枉过正,但如果你能从pgrep获得PID,只需将它们作为参数来杀死.就像是:

pgrep -lf 'proc_.*' | awk '{print $1}' | xargs kill -f
Run Code Online (Sandbox Code Playgroud)

  • 这个*是过度的,只需要``pgrep -f'proc _.*'| xargs kill` ;-) (7认同)