我已创建了一个简单的NodeJS应用程序,现在我已将其移至AWS中的服务器。
我能够进入服务器并启动应用程序,但很明显,一旦我关闭终端,流程就会停止。
如何启动我的NodeJS应用并在我关闭终端后继续运行?
答案 0 :(得分:2)
虽然有特定的解决方案(例如forever),但这不是特定的nodejs问题。
在Linux上远程启动任何程序并且在关闭会话时没有死的通用解决方案是使用nohup启动它。这是一个示例,我在其中启动节点并将标准和错误输出重定向到server.log
文件中:
nohup node main.js >> server.log 2>&1 < /dev/null &
答案 1 :(得分:1)
像Denys Seguret所说,这可以使用forever node包来完成。这是怎样的 -
SSH进入您的服务器并以root用户身份全局安装
sudo npm install forever --global
要在节点脚本上永远运行,请在与server.js相同的目录中执行终端,如下所示 -
forever start server.js
确保通过在适当的网址上启动浏览器来测试其是否正常工作。如果要检查服务器上运行的所有永久脚本的状态(可以在多个脚本上运行)运行此命令 -
forever list
并且要停止永久脚本,您可以运行forever stop
,这将停止我认为的所有永久脚本,或运行forever stop 0
,其中0是永久列表中脚本的索引。
我永远使用我所有的gulp应用程序,还没有任何问题,但我不认为我的远程服务器有任何重大的关闭问题。也许如果发生这种情况,我会更多地谈论永远的可信度。这个答案的一些学分是来自website。