使用node-java软件包时,nodemon没有重新启动服务器

时间:2015-09-24 12:00:51

标签: node.js express nodemon node-java

使用 node-java 包时,文件更改时 nodemon不会重新启动。如果我删除node-java 包,那么当文件发生更改时, nodemon将重新启动

在服务器中使用node-java软件包时,即使手动重启(rs)也不起作用。以下是行为。

nodemon the behavior when using node-java alon

甚至它引发了以下情况:

events.js:85
     throw er; // Unhandled 'error' event
           ^
Error: listen EADDRINUSE
   at exports._errnoException (util.js:746:11)
   at Server._listen2 (net.js:1156:14)
   at listen (net.js:1182:10)
   at Server.listen (net.js:1267:5)

由于端口4000仅在服务器中使用一次而在其他地方不使用,因此其行为很奇怪。

2 个答案:

答案 0 :(得分:5)

似乎node-java以某种方式神奇地覆盖了'接收SIGUSR2信号时发生了什么。在这种情况下,SIGUSR2信号(由nodemon使用)重启应用可能无法终止应用。

(快速)修复:

在node-java搞砸了你的SIGUSR2处理机制之后,添加以下代码片段:

process.once('SIGUSR2', function() {
  process.kill(process.pid, 'SIGUSR2')
})

请注意,您必须在node-java之后(或使用它的内容,在我的情况下是node-tika)执行此项工作' (在我的情况下,在要求node-tika之后立即)。

说实话,我只有很少的理解,为什么这样有效,如果有人能够对此有所了解,我会感到高兴。

答案 1 :(得分:1)

您可以尝试运行此命令。

nodemon --signal SIGINT ./index.js