保持节点在后台运行的最佳方法是什么 - nohup vs. forever vs. pm2?

cod*_*101 4 nohup node.js forever mean-stack pm2

我已经阅读了很多关于使用nohup,forever和pm2保持节点在后台运行的帖子.但我仍然不确定哪个是最佳选择,并希望得到一些指导.

背景 - 在使用Ubuntu版本16的Apache服务器上运行MEAN堆栈应用程序.App.js位置是/ var/www /.当我退出终端时,我正在使用永远使应用程序在后台运行.我明白,如果我使用nohup,命令就是

nohup node /var/www/<project_name>/app.js > stdout.txt 2> stderr.txt &
Run Code Online (Sandbox Code Playgroud)

我想要确保的是,无论1)我如何退出终端(通过键入exit或只是单击右上角的X)和2)部署应用程序的操作系统,没有后台服务将以某种方式终止当我退出终端时,这会破坏我的应用程序.为此,运行应用程序的最佳方法是什么?nohup,forever还是pm2?我也明白有些人永远偏爱pm2.pm2提供什么比永远不提供?

wes*_*tdb 6

PM2更先进,它有PM2-Web界面来管理它.

PM2确实如此,但永远不会:

  • 优雅/滚动重启
  • OS启动脚本支持
  • 远程部署
  • 多个部署/恢复
  • 群集模式
  • 度量