在一台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的初学者。
当前回答
首先全局安装pm2
npm install -g pm2
然后开始
pm2 start bin/www
其他回答
我建议寻找诸如Forever之类的东西来在崩溃时重新启动Node,并为您处理这个守护进程。
你可以简单地使用这个
nohup node /srv/www/MyUserAccount/server/server.js &
这将保持应用程序运行,关闭它,你将不得不杀死它。
为此,你可以安装htop,然后搜索节点,然后杀死它
尝试pm2以使应用程序永远运行。
NPM安装-g pm2
然后使用
启动server.js
要列出和停止应用程序,使用命令
pm2列表
Pm2停止0
不需要安装其他包。
执行此命令
node server.js > stdout.txt 2> stderr.txt &
server.js是你的服务器文件,也可以是api.js
之后,点击“退出”关闭终端
exit
另一种方法是为你的应用程序创建一个系统单元。服务“/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在系统启动时自动启动应用程序。