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