如何在后台启动NodeJS?

时间:2019-01-15 03:00:31

标签: node.js ubuntu npm pm2 forever

我试图开始一个项目

node index.js,我知道了

events.js:173                                                                                             
      throw er; // Unhandled 'error' event                                                                
      ^                                                                                                   

Error: listen EADDRINUSE: address already in use :::3000                                                  
    at Server.setupListenHandle [as _listen2] (net.js:1255:14)                                            
    at listenInCluster (net.js:1303:12)                                                                   
    at Server.listen (net.js:1391:7)                                                                      
    at Function.listen (/home/forge/bheng/public/ios-base-api/node_modules/express/lib/application.js:618:24)                                                                                                       
    at Object.<anonymous> (/home/forge/bheng/public/ios-base-api/index.js:156:5)                          
    at Module._compile (internal/modules/cjs/loader.js:721:30)                                            
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)                              
    at Module.load (internal/modules/cjs/loader.js:620:32)                                                
    at tryModuleLoad (internal/modules/cjs/loader.js:560:12)                                              
    at Function.Module._load (internal/modules/cjs/loader.js:552:3)                                       
Emitted 'error' event at:                                                                                 
    at emitErrorNT (net.js:1282:8)                                                                        
    at internalTickCallback (internal/process/next_tick.js:72:19)                                         
    at process._tickCallback (internal/process/next_tick.js:47:5)                                         
    at Function.Module.runMain (internal/modules/cjs/loader.js:777:11)                                    
    at executeUserCode (internal/bootstrap/node.js:342:17)                                                
    at startExecution (internal/bootstrap/node.js:276:5)                                                  
    at startup (internal/bootstrap/node.js:227:5)                                                         
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)   

然后,我跑了lsof -i | grep 3000,我得到了

node      6159       root   19u  IPv6 58371978      0t0  TCP *:3000 (LISTEN)  

然后,我跑了ps -aux | grep node,我得到了

root       448  0.0  1.4 569912 29600 ?        Ssl  21:21   0:00 node /usr/bin/pm2 update                 
root      1266  0.0  1.5 569400 31628 ?        Ssl  21:28   0:00 node /usr/bin/pm2 update                 
root      6159  1.0  2.4 845540 49568 ?        Ssl  21:46   0:02 node /home/forge/bheng/public/ios-base-api/index.js                                                                                                
root      6482  0.0  0.0  11244   948 pts/3    S+   21:50   0:00 grep --color=auto node                   
root     32233  0.0  1.4 569912 29876 ?        Ssl  21:14   0:00 node /usr/bin/pm2 update 

我只想在后台启动我的nodejs应用,并能够随时访问我的端点。

为什么这么复杂?

1 个答案:

答案 0 :(得分:1)

有很多可以帮助您的软件包。检出pm2forever

它们两者都允许您在后台运行项目,并且也可以自动重新加载:)