使用 node-java 包时,文件更改时 nodemon不会重新启动。如果我删除node-java 包,那么当文件发生更改时, nodemon将重新启动。
在服务器中使用node-java软件包时,即使手动重启(rs)也不起作用。以下是行为。
甚至它引发了以下情况:
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仅在服务器中使用一次而在其他地方不使用,因此其行为很奇怪。
答案 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