终止webpack-dev-server后执行bash

这是一个小烦恼。 作为一个项目的“快速启动”脚本的一部分,我开始在terminal选项卡中的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选项卡就会closures。

手动发送一个中断信号给节点进程会使标签打开(例如kill -INT <pid> )。 所以问题是从操作系统的angular度来看。 什么stream程树被创build? 哪个进程得到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和exec bash;