终止 webpack-dev-server 后执行 bash

Execute bash after terminating webpack-dev-server

这里有个小烦恼。作为项目 "quickstart" 脚本的一部分,我在终端选项卡中启动了一个 webpack 服务器,以及其他选项卡中的其他内容,简而言之:

#!/usr/bin/env bash

gnome-terminal --tab --tab --command \
    'bash -c "node_modules/.bin/webpack-dev-server; exec bash"' &

除了服务器选项卡中的 Ctrl+C 外,这几乎可以正常工作。例如,如果它是一个 Flask 服务器,它会停止并且 bash 提示会出现在同一个选项卡中(这就是 "exec bash" 部分的原因)。但是对于 node / webpack,选项卡只是关闭。

手动向节点进程发送中断信号会使选项卡保持打开状态(例如 kill -INT <pid>)。所以问题是从操作系统的角度来看发生了什么。创建什么进程树?哪个进程获得 SIGINT? exec 替换了什么(如果有的话)?

可能相关:https://github.com/nodejs/node/issues/4432.

尝试使用 trap 如下:

bash -c "trap 'exec bash' SIGINT; node_modules/.bin/webpack-dev-server;"

它必须在 cmd+c 上杀死 webpack-dev-server 并执行 bash;