我正在为Node.js服务器运行一个永久的进程,但是一天后服务器停止进程。我的服务器在Ubuntu平台上运行。我做了以下过程:
首先我安装了npm install forever
并运行了命令forever start server.js
。我需要服务器一直运行但有一天后我看到服务器停止工作。
请帮我解决此问题。
答案 0 :(得分:1)
我建议您尝试使用PM2。这是我写的关于它的简短教程:http://www.nikola-breznjak.com/blog/nodejs/using-pm2-to-run-your-node-js-apps-like-a-pro/。
修改强> 根据StackOverflow的政策,我还包括帖子中的内容:
手动运行Node.js应用程序,不是我们推出的方式。想象一下每次发生事情时重新启动应用程序,或者上帝禁止应用程序在半夜崩溃,你只能在早上找到它 - 恐怖啊。 PM2解决了这个问题:
要安装PM2,请运行以下命令:
sudo npm install pm2 -g
要使用PM2启动流程,请运行以下命令(一次在应用程序的根目录中):
pm2 start server.js
从下图所示的输出中可以看出,PM2会自动分配一个App名称(基于文件名,不带.js扩展名)和PM2 id。 PM2还维护其他信息,例如进程的PID,其当前状态和内存使用情况。
正如我之前提到的,如果应用程序崩溃或被杀死,PM2下运行的应用程序将自动重启,但需要采取额外步骤让应用程序在系统启动(启动或重启)时启动。执行此操作的命令如下:
pm2 startup ubuntu
此命令的输出将指示您执行另一个命令,该命令将启用启动或重新启动时的实际启动。在我的例子中,附加命令的注释是:
sudo env PATH=$PATH:/usr/local/bin pm2 startup ubuntu -u nikola