在一台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,这是一个Node.js应用程序的进程管理器。PM2提供了一种简单的方法来管理和守护应用程序(将它们作为服务运行)。

参考这个链接- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-centos-7

其他回答

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

npm -g install forever

Try:

npm -g install forever deep-equal@1.1.1

代替。

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

将它放在/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,它是一个带有内置负载均衡器的Node.js应用程序的生产过程管理器。

安装PM2

$ npm install pm2 -g

启动应用程序

$ pm2 start app.js

如果你使用express,你可以启动你的应用程序

pm2 start ./bin/www --name="app"

列出所有正在运行的进程:

$ pm2 list

它将列出所有进程。然后,您可以使用以下命令使用应用程序的ID或名称来停止/重新启动服务。

$ pm2 stop all                  
$ pm2 stop 0                    
$ pm2 restart all               

显示日志

$ pm2 logs ['all'|app_name|app_id]

我推荐使用PM2,这是一个Node.js应用程序的进程管理器。PM2提供了一种简单的方法来管理和守护应用程序(将它们作为服务运行)。

参考这个链接- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-centos-7

nohup工作,我检查了AWS ubto vm遵循正确的语法

ubuntu@ip-172-00-00-00:~/ms$ nohup node server.js &

然后按enter键,您将看到这一行

ubuntu@ip-172-00-00-00:~/ms$ nohup: ignoring input and appending output to ‘nohup.out’

然后输入这个

rm nohup.out