在一台Debian服务器上,我安装了Node.js。我知道如何用这个命令行从putty启动一个应用程序:
node /srv/www/MyUserAccount/server/server.js
并在地址50.51.52.53:8080 (IP和端口)上访问它。
但是当我一关闭putty,我就无法到达50.51.52.53:8080这个地址了。
如何让一个Node.js应用程序永久运行?
你可以猜到,我是Linux和Node.js的初学者。
在一台Debian服务器上,我安装了Node.js。我知道如何用这个命令行从putty启动一个应用程序:
node /srv/www/MyUserAccount/server/server.js
并在地址50.51.52.53:8080 (IP和端口)上访问它。
但是当我一关闭putty,我就无法到达50.51.52.53:8080这个地址了。
如何让一个Node.js应用程序永久运行?
你可以猜到,我是Linux和Node.js的初学者。
当前回答
以下是我在个人项目中使用的一个新贵解决方案:
将它放在/etc/init/node_app_daemon.conf:
description "Node.js Daemon"
author "Adam Eberlin"
stop on shutdown
respawn
respawn limit 3 15
script
export APP_HOME="/srv/www/MyUserAccount/server"
cd $APP_HOME
exec sudo -u user /usr/bin/node server.js
end script
这也将在应用程序崩溃时处理重生。如果在不到15秒的时间内崩溃3次或更多,它将放弃重新生成应用程序的尝试。
其他回答
首先全局安装pm2
npm install -g pm2
然后开始
pm2 start bin/www
Forever包适合我,只有一件事,它取决于deep-equal,所以如果你在安装它时遇到了问题:
npm -g install forever
Try:
npm -g install forever deep-equal@1.1.1
代替。
我推荐使用PM2,这是一个Node.js应用程序的进程管理器。PM2提供了一种简单的方法来管理和守护应用程序(将它们作为服务运行)。
参考这个链接- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-centos-7
如果你只是想在终端中运行你的节点应用程序,只需要使用screen。
安装在ubuntu/ debian上:
sudo apt-get install screen
用法:
$ screen
$ node /path/to/app.js
CTRL + a,然后CTRL + d取消
get就是回来:
一屏:screen -r
如果有多个屏幕,可以使用screen -ls列出所有屏幕
然后:screen -r pid_number
你可以像这样使用npm永远安装:
sudo npm install -g forever
然后开始你的应用程序:
forever server.js
或作为一种服务:
forever start server.js
当应用程序崩溃或因某种原因停止时,永远重新启动应用程序。要限制重启次数为5次,您可以使用:
forever -m5 server.js
查询所有正在运行的进程。
forever list
注意括号中的整数,并使用它来停止一个进程:
forever stop 0
重新启动正在运行的进程:
forever restart 0
如果你正在处理你的应用程序文件,你可以使用-w参数在server.js文件更改时自动重新启动:
forever -w server.js