在一台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的初学者。
当前回答
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
其他回答
我建议寻找诸如Forever之类的东西来在崩溃时重新启动Node,并为您处理这个守护进程。
你可以简单地使用这个
nohup node /srv/www/MyUserAccount/server/server.js &
这将保持应用程序运行,关闭它,你将不得不杀死它。
为此,你可以安装htop,然后搜索节点,然后杀死它
不需要安装其他包。
执行此命令
node server.js > stdout.txt 2> stderr.txt &
server.js是你的服务器文件,也可以是api.js
之后,点击“退出”关闭终端
exit
安装
$ [sudo] npm install forever -g
您可以使用forever来连续运行脚本
forever start server.js
forever list
停止服务
forever stop server.js
正如我们所知,有很多选择可以做到这一点。这是一个纯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 & )