在一台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 

其他回答

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

NPM安装-g pm2

然后使用

启动server.js

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

pm2列表

Pm2停止0

安装

$ [sudo] npm install forever -g

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

forever start server.js

forever list

停止服务

forever stop server.js

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

正如我们所知,有很多选择可以做到这一点。这是一个纯Shell解决方案,不需要额外的程序/包。

如果server.js因为某些原因/错误崩溃,这个解决方案将重新启动server.js。

假设这是一个run.sh:

#!/usr/bin/env sh

while :; do
    node server.js

    echo "Restarting..."
    sleep 1
done

确保run.sh文件可执行:

chmod +x run.sh

要运行它:

./run.sh

如果你想在后台运行它:

./run.sh &

在后台超静音运行(分离,没有任何输出):

( ./run.sh > /dev/null 2>&1 & )

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

npm -g install forever

Try:

npm -g install forever deep-equal@1.1.1

代替。