我有许多名称相似的进程,例如“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
答案 0 :(得分:7)
看起来像矫枉过正,但如果你能从pgrep获得PID,只需将它们作为参数来杀死。类似的东西:
pgrep -lf 'proc_.*' | awk '{print $1}' | xargs kill -f