我有以下代码从终端捕获^ 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);
});
});
但是,如果我使用来启动节点实例--inspect
,那么上面的代码将无法停止检查器和Chrome调试器。重新启动应用程序时,出现以下错误:
Starting inspector on 127.0.0.1:9229 failed: address already in use
如何正常停止我的应用程序以避免此错误?
完整的代码在这里。
似乎VSCode,Puppeteer,nodemon,express等导致了此问题,您在后台运行了一个进程,或者只是关闭了调试区域(浏览器,终端等),或者无论如何,都可以在CMD中运行
$ ps ax | grep node
然后
$ killall -9 node
这也不是最好的解决方案,我也建议您使用此端口查找过程,然后发送关闭信号
$ sudo ss -lptn 'sport = :9229'
要么
$ sudo netstat -nlp | grep :9229
要么
$ sudo lsof -n -i :9229 | grep LISTEN
然后:
$ sudo kill <pid>
或只需[将两个步骤合而为一]
$ sudo kill `sudo lsof -t -i:9229`
要么
$ sudo kill $(sudo lsof -t -i:9229)
在chrome中调试时,即使没有设置断点,脚本也总是在调试器中暂停,如果暂停未暂停,它会再次暂停自己。 能做些什么呢?
我的程序需要允许用户输入员工姓名和年度总销售额。当用户完成将员工添加到阵列中时,程序应确定哪些员工的销售额最高,哪些员工的销售量最低。然后,它应该打印出两个数字之间的差异。 在我下面的代码中,我有一个保存用户输入的年销售额的totalPay类(它包括以前赋值中的其他变量和方法,这里没有使用)。salesPerson类保存雇员的姓名和totalPay对象,其中包括他们的年销售额。(我意识到这太复杂了
在以前版本的Visual Studio(或者我几年前设置的一些设置)中,当我停止调试Web应用程序时,实际的IIS Express实例将继续运行。我真的很喜欢这种行为,因为这意味着当我编辑代码/重新编译ect时,站点总是在运行以进行修补。 自从升级到VS 2013后,这种情况似乎不再发生,当我停止调试时,它也停止了IIS express应用程序池。 有没有人知道某处有没有改变这种行为的设定?
作者注:这个错误的许多问题鼓励我张贴这个问题,以供将来参考。 相关问题: 使用node_env=production的spawn函数 node.js child_process.spawn ENOENT error-仅在supervisord 生成ENOENT Node.js错误 https://stackoverflow.com/questions/27603713/nodejs-spawn-e
问题内容: 我从节点7 开始就熟悉使用该选项。现在在节点8上,它不起作用。今天,我要求节点照常使用检查器: 它回应如下: 如果我尝试打开该链接,Chrome会说: 在此之前,它曾经是一个“ chrome-devtools://”链接,该链接非常出色。 是什么赋予了? 到处搜索,我找不到与此链接有关的任何内容。 问题答案: 有来自nodejs文档的信息 选项1:在基于Chromium的浏览器中打开。