Nar*_*esh 13 node.js express node-inspector
我有以下代码从终端捕获^ C并正常关闭我的Express应用程序:
process.on('SIGINT', () => {
console.log('SIGINT received ...');
console.log('Shutting down the server');
server.close(() => {
console.log('Server has been shutdown');
console.log('Exiting process ...');
process.exit(0);
});
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用启动节点实例--inspect,则上述代码无法停止检查器和Chrome调试器.当我重新启动我的应用程序时,我收到以下错误:
Starting inspector on 127.0.0.1:9229 failed: address already in use
Run Code Online (Sandbox Code Playgroud)
如何优雅地停止我的应用程序以避免此错误?
可以使用完整的代码在这里.
Kho*_*lam 29
似乎VSCode,Puppeteer,nodemon,express等导致了这个问题,你在后台运行了一个进程或者只是关闭了调试区[浏览器,终端等]或者其他什么,无论如何,你可以在CMD中运行
$ ps ax | grep node
Run Code Online (Sandbox Code Playgroud)
然后
$ killall -9 node
Run Code Online (Sandbox Code Playgroud)
它不是最好的解决方案,我也建议您使用此端口查找进程然后发送关闭信号
$ sudo ss -lptn 'sport = :9229'
Run Code Online (Sandbox Code Playgroud)
要么
$ sudo netstat -nlp | grep :9229
Run Code Online (Sandbox Code Playgroud)
要么
$ sudo lsof -n -i :9229 | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
然后:
$ sudo kill <pid>
Run Code Online (Sandbox Code Playgroud)
或者只是[两个步骤合二为一]
$ sudo kill `sudo lsof -t -i:9229`
Run Code Online (Sandbox Code Playgroud)
要么
$ sudo kill $(sudo lsof -t -i:9229)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12727 次 |
| 最近记录: |