即使使用sudo nohup后,Amazon EC2 NodeJS服务器也会在2天后自行停止
我有我的应用程序在http://talkwithstranger.com/上运行,我已经在AWS EC2上部署了它。 我使用这个命令
sudo nohup node index.js &
即使closures我的terminal并退出SSH,也要继续运行我的Node JS服务器。
然而,每当我醒来2天后,我发现节点服务器本身自动停止。 我通过使用检查正在运行的进程
ps -ef
和我的节点脚本不在那里。
谷歌浏览器说,网站的DNS没有find,因为nodeJS快递不是当然服务我的HTML文件。 但为什么它停止?
是什么导致这个意外的closures我的服务器每两天后? 我必须再次手动运行nohup
再次运行。
nohup是否有时间到期或什么?
有任何想法吗?
提前致谢
你可以尝试一下,安装使用下面的命令。
npm install -g forever
然后永远开始:
forever start index.js
您应该使用服务/进程pipe理器来运行node.js。 你可以使用一些基本的东西,如forever
或supervisord
但我实际上build议你看看PM2 。
它可以做很多事情 – 其中之一是它pipe理你的进程,确保它继续运行,当它失败时重新启动它,pipe理日志等等。你也可以在重新启动服务器时自动启动它。
它与http://keymetrics.io (也有一个免费的计划)结合起来变得非常强大,因为这使您能够远程监视服务器的指标(如CPU和内存),并查看是否发生exception(付费计划也会将您警报)等等(比如甚至通过从git中拉出来远程更新软件)。
PM2的基本用法:
npm install -g pm2
…安装PM2。
pm2 start my_script.js
启动一个脚本,让它在后台运行。
pm2 status
显示任何正在运行的脚本的状态。
pm2 restart all
重新启动所有运行的脚本。
pm2 logs
监视CPU / RAM使用情况并显示它。
pm2 monit
显示最后20个输出和错误日志行,并开始将实时日志stream式传输到控制台。 日志存储在~/.pm2/logs
文件夹中。
使用PM2,你的脚本不会停止 – 至多会重启。 如果这样做,您将能够更容易地理解为什么,因为您可以轻松访问日志并观察内存使用情况等等。