【问题标题】:Node.js process getting killed on aws instancesNode.js 进程在 aws 实例上被杀死
【发布时间】:2016-08-22 08:50:15
【问题描述】:

我们正在尝试将我们的一个节点 js 应用程序(AngularJS/NodeJS 技术堆栈)部署到生产环境。随机地,一些 ec2 实例只是随着节点进程被杀死而关闭。但是没有记录应用程序/系统级别的错误消息。我们无法在本地/dev/it 环境中复制此问题。有没有人遇到过类似的事情?任何帮助深表感谢。谢谢!

【问题讨论】:

  • 你是如何启动 NodeJS 进程的?您可能需要考虑使用 Forever 之类的服务:github.com/foreverjs/forever
  • 我们正在后台使用 nohup 命令启动 node js 服务器。
  • 如果异常导致进程退出,则不会重新启动 Node 进程。你只需要安装 Forever 并使用它。
  • 我看到了同样的行为。 Nodejs进程随机消失,日志中没有任何内容。不知道 aws 是不是罪魁祸首...

标签: angularjs node.js amazon-web-services


【解决方案1】:

我现在这是一个老问题,以防其他人遇到同样的问题。
很可能是您的内存不足,正如here. 所解释的那样,您可以使用 dmesg 命令 (linux) 进行验证。要修复它,您可以添加更多内存或添加交换卷。
一种方法是关注answer

sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
// enable after reboot
/var/swap.1 swap swap defaults 0 0

【讨论】:

    【解决方案2】:

    默认情况下,nodejs 应用程序会在没有客户端连接时停止,您可以使用forever 等工具来保持您的nodejs 应用程序运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 2013-04-07
      • 2012-09-21
      • 1970-01-01
      相关资源
      最近更新 更多