传递bash命令注释从pkill看

问题描述 投票:0回答:2

我有一个任意的bash命令正在运行,我想附加一些识别注释,以便我可以在必要时杀死它。

例如:

sleep 1000 #uniqueHash93581
pkill -f '#uniqueHash93581'

...但#uniqueHash93581没有被解释,所以pkill将找不到该过程。

有没有办法传递这个唯一的哈希,以便我可以解决这个过程?

linux bash pkill
2个回答
1
投票

Bash在运行命令之前删除注释。


Linux和GNU grep的解决方法:

使用具有唯一值的变量作为命令的前缀

ID=uniqueHash93581 sleep 1000

稍后搜索此变量以获取PID并终止该过程

grep -sa ID=uniqueHash93581 /proc/*/environ | cut -d '/' -f 3 | xargs kill

1
投票

exec子shell中的命令,并使用-a选项为其指定一个可识别的名称。例如:

$ (exec -a foobar sleep 1000) &
$ ps | grep foobar
893 ttys000    0:00.00 foobar 10

或者,只需在后台运行作业并保存其PID。

$ sleep 1000 & pid=$!
$ kill "$pid"
© www.soinside.com 2019 - 2024. All rights reserved.