在一台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/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在系统启动时自动启动应用程序。

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

如果你只是想在终端中运行你的节点应用程序,只需要使用screen。

安装在ubuntu/ debian上:

sudo apt-get install screen

用法:

$ screen
$ node /path/to/app.js

CTRL + a,然后CTRL + d取消

get就是回来:

一屏:screen -r

如果有多个屏幕,可以使用screen -ls列出所有屏幕

然后:screen -r pid_number

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

NPM安装-g pm2

然后使用

启动server.js

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

pm2列表

Pm2停止0

首先全局安装pm2

npm install -g pm2

然后开始

pm2 start bin/www