在一台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的初学者。
当前回答
Forever包适合我,只有一件事,它取决于deep-equal,所以如果你在安装它时遇到了问题:
npm -g install forever
Try:
npm -g install forever deep-equal@1.1.1
代替。
其他回答
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
以下是我在个人项目中使用的一个新贵解决方案:
将它放在/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提供了一种简单的方法来管理和守护应用程序(将它们作为服务运行)。
参考这个链接- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-centos-7
我希望这对你有所帮助。
在命令行,永远安装:
npm install forever -g
创建一个示例文件:
sudo nano server.js
您可以编辑该文件并直接在浏览器中获得结果。 您可以使用filezilla或任何编辑器来编辑该文件。 运行文件:
forever start --minUptime 1 --spinSleepTime 1000 -w server.js
另一种方法是为你的应用程序创建一个系统单元。服务“/etc/systemd/system”文件夹中的文件,类似如下:
[Unit]
Description=swagger
After=network.target
[Service]
ExecStart=/usr/bin/http-server /home/swagger/swagger-editor &
WorkingDirectory=/home/swagger
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
好处是应用程序将作为服务运行,它会自动重启,如果它崩溃了。
你也可以使用sytemctl来管理它:
systemctl start XXX启动服务,systemctl stop XXX停止服务,systemctl enable XXX在系统启动时自动启动应用程序。