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


当前回答

不需要安装其他包。

执行此命令

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

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

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

exit

其他回答

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

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

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

安装

$ [sudo] npm install forever -g

您可以使用forever来连续运行脚本

forever start server.js

forever list

停止服务

forever stop server.js

你可以简单地使用这个

nohup node /srv/www/MyUserAccount/server/server.js &

这将保持应用程序运行,关闭它,你将不得不杀死它。

为此,你可以安装htop,然后搜索节点,然后杀死它

在开发过程中,我建议使用nodemon。当文件发生变化时,它将重新启动服务器。正如其他人所指出的,Forever是一种选择,但在生产中,这完全取决于你所使用的平台。 您通常希望使用操作系统推荐的方式来保持服务正常运行(例如http://www.freedesktop.org/wiki/Software/systemd/)。