Som*_*Som 2 node.js express nodemon node-java
使用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)Run Code Online (Sandbox Code Playgroud)
由于端口4000仅在服务器中使用一次而在其他地方不使用,因此其行为很奇怪.
似乎node-java以某种方式神奇地"覆盖"接收SIGUSR2信号时发生的事情.在这种情况下,重启应用程序的SIGUSR2信号(用于nodemon)可能无法终止应用程序.
(快速解决:
在node-java搞砸了你的SIGUSR2处理机制之后,添加以下代码片段:
process.once('SIGUSR2', function() {
process.kill(process.pid, 'SIGUSR2')
})
Run Code Online (Sandbox Code Playgroud)
请注意,你必须这样做node-java(或者使用它的东西,在我的情况下是这样node-tika)做它的'工作'(在我的情况下,在要求后立即node-tika).
说实话,我只有很少的理解,为什么这样有效,如果有人能够对此有所了解,我会很高兴.
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |