如何为命令命名一个进程并通过名称将其杀死?

如何为命令命名一个进程并通过名称将其杀死?

我需要编写一个简短的 aux bash 脚本来清除 logcat 缓冲区,然后将其输出到文件(新进程)中。

问题是每次运行时我都需要终止转储到文件中的前一个进程(但我无法终止整个 adb 进程)。

adb -s $1 logcat -c
adb -s $1 logcat -v time > $1.log &

$1 - 设备 ID

我希望第二个命令adb -s $1 logcat -v time > $1.log &在名为的进程中运行$1,这样我就可以在运行其他命令之前将其终止。如下所示:

pkill $1
adb -s $1 logcat -c
adb -s $1 logcat -v time > $1.log &

答案1

pkill 采用正则表达式模式。使用该-f选项搜索整个命令行。

pkill -f "adb .* $1 .* -v time"

相关内容