[英]nodemon is not restarting the server when using node-java package
When using node-java package, nodemon doesn't restart when the files change.使用node-java包时,文件更改时nodemon 不会重新启动。 If I remove node-java package then nodemon will restart when there are file changes.如果我删除 node-java包,那么nodemon 将在文件更改时重新启动。
Even the manual restart (rs) is not working when using node-java package in server.在服务器中使用 node-java 包时,即使手动重启(rs)也不起作用。 Following is the behavior.以下是行为。
And even it throws the following:甚至它抛出以下内容:
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)
Since the port 4000 is being used only once in server and no where else, its behaving weird.由于端口 4000 在服务器中仅使用一次而在其他任何地方都没有使用,因此它的行为很奇怪。
It seems that node-java somehow magically 'overrides' what's happening when receiving SIGUSR2
signal.似乎 node-java 以某种方式神奇地“覆盖”了接收SIGUSR2
信号时发生的事情。 In such a case, the SIGUSR2
signal (used by nodemon
) to restart the app may fail terminating the app.在这种情况下,用于重新启动应用程序的SIGUSR2
信号(由nodemon
)可能无法终止应用程序。
(Quick) Fix: (快速解决:
after the node-java has screwed your SIGUSR2
handling mechanism, add the following snippet of code:在 node-java 搞砸了您的SIGUSR2
处理机制后,添加以下代码片段:
process.once('SIGUSR2', function() {
process.kill(process.pid, 'SIGUSR2')
})
note that you must do this AFTER the node-java
(or something which uses it, in my case it is node-tika
) does its 'job' (in my case, immediately after requiring node-tika
).请注意,您必须在node-java
(或使用它的东西,在我的情况下是node-tika
)完成它的“工作”(在我的情况下,在需要node-tika
之后立即执行此操作)。
To be honest, I have only very little understanding, why this works and I'll be glad if someone can shed more light on this.老实说,我只有很少的理解,为什么这有效,如果有人能对此有更多的了解,我会很高兴。
您可以尝试运行此命令。
nodemon --signal SIGINT ./index.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.