如何在停止当前正在运行的 bash 文件后执行任意命令



我有这个 bash 文件,我用来运行我的角度应用程序:

#!/usr/bin/env bash
yarn start

我正在通过IntelliJ IDEA"运行/调试配置"菜单运行此文件作为可运行的目标。

问题是:当我要求 IDEA 停止 bash 运行时,它停止了它,但没有杀死节点进程,并且我让端口仍然打开。

我的解决方法是将 bash 文件编辑为如下所示:

#!/usr/bin/env bash
echo "cleaning from previous run...."
ps -W | awk '/node.exe/,NF=1' | xargs kill -f
echo "done cleaning"
yarn start

附言我在Windows中使用Cygwin。

使用特殊的出口陷阱:

trap 'clean_exit' EXIT
clean_exit() {
    ps -W | awk '/node.exe/,NF=1' | xargs kill -f
}

陷阱在出口处注册clean_exit

最新更新