在一台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的初学者。


当前回答

尝试pm2以使应用程序永远运行。

NPM安装-g pm2

然后使用

启动server.js

要列出和停止应用程序,使用命令

pm2列表

Pm2停止0

其他回答

以下是我在个人项目中使用的一个新贵解决方案:

将它放在/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次或更多,它将放弃重新生成应用程序的尝试。

不需要安装其他包。

执行此命令

node server.js > stdout.txt 2> stderr.txt &

server.js是你的服务器文件,也可以是api.js

之后,点击“退出”关闭终端

exit

Forever包适合我,只有一件事,它取决于deep-equal,所以如果你在安装它时遇到了问题:

npm -g install forever

Try:

npm -g install forever deep-equal@1.1.1

代替。

你可以像这样使用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

Forever是一个非常好的NodeJs模块。

通过在命令行中输入永远安装

$ npm install forever -g

然后使用以下命令运行node.js脚本

$ forever start /path/to/script.js

你可以出发了。此外,你可以运行

$ forever list

查看所有正在运行的脚本。您可以通过键入来终止任何特定的脚本

$ forever stop [pid]

其中[pid]是通过list命令获取的脚本的进程号。要停止所有脚本,您可以输入

$ forever stopall