我只是讨厌看到我的服务器每次关闭都打开和关闭。.每当我醒来时,它就关闭了。每次我必须使用SSH然后运行
forever restartall
重新启动我的节点应用程序:(
我看着永远的日志文件,它说这
error: Forever detected script was killed by signal: SIGKILL
error: Script restart attempt #1
我完全不知道为什么会这样。
我甚至每隔50分钟运行一次cron作业,以自动重启节点js,以防其自行关闭
0,50 * * * * * forever restartall
我的应用程序在Ubuntu EC2 AWS上运行。我使用以下命令永久使用我的节点应用程序:
forever -m5000 -w start index.js
另外,这是最近发生的syslog快照,因为最近发生了这种情况
Jun 1 12:50:01 ip-172-31-28-35 CRON[25924]: (ubuntu) CMD (forever restartall)
Jun 1 12:50:01 ip-172-31-28-35 CRON[25923]: (CRON) info (No MTA installed, discarding output)
Jun 1 13:00:01 ip-172-31-28-35 CRON[25930]: (ubuntu) CMD (forever restartall)
Jun 1 13:00:01 ip-172-31-28-35 CRON[25929]: (CRON) info (No MTA installed, discarding output)
Jun 1 13:05:50 ip-172-31-28-35 dhclient: DHCPREQUEST of 172.31.28.35 on eth0 to 172.31.16.1 port 67 (xid=0x58e67545)
Jun 1 13:05:50 ip-172-31-28-35 dhclient: DHCPACK of 172.31.28.35 from 172.31.16.1
Jun 1 13:05:50 ip-172-31-28-35 dhclient: bound to 172.31.28.35 -- renewal in 1415 seconds.
Jun 1 13:09:01 ip-172-31-28-35 CRON[26000]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime))
Jun 1 13:17:01 ip-172-31-28-35 CRON[26016]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 1 13:20:01 ip-172-31-28-35 CRON[26023]: (ubuntu) CMD (/home/ubuntu/cron/serv.sh)
Jun 1 13:20:01 ip-172-31-28-35 CRON[26022]: (CRON) info (No MTA installed, discarding output)
Jun 1 13:29:25 ip-172-31-28-35 dhclient: DHCPREQUEST of 172.31.28.35 on eth0 to 172.31.16.1 port 67 (xid=0x58e67545)
Jun 1 13:29:25 ip-172-31-28-35 dhclient: DHCPACK of 172.31.28.35 from 172.31.16.1
Jun 1 13:29:25 ip-172-31-28-35 dhclient: bound to 172.31.28.35 -- renewal in 1560 seconds.
Jun 1 13:34:39 ip-172-31-28-35 crontab[26289]: (ubuntu) LIST (ubuntu)
这是Ubuntu终端上
free-h
命令的快照:这是
df -h
命令的快照:有什么办法可以解决这个问题,并诊断为什么我的应用会自行崩溃?
建议后的最新编辑和日志:
卸载的MySQL。
添加了SWAP。
我添加了未捕获的异常代码
现在,当我今天醒来时,服务器再次关闭,这是我的永久日志http://kl1p.com/AI01,而这是崩溃和系统日志屏幕截图https://snag.gy/WMzqL0.jpg之后的free-h。
https://snag.gy/0wG8Dx.jpg
任何人都可以帮助导致RAM充分使用的原因以及Node JS导致错误的原因,如何解决这些错误?
最佳答案
我怀疑内存问题。蛮力强制forever
重新启动(cron等)只会掩盖真正的问题。
将此添加到您的代码:
process.on('uncaughtException', function (err) {
console.log("Uncaught Exception:", err);
process.exit(1); // This is VITAL. Don't swallow the err and try to continue.
});
这将允许您开始诊断导致节点服务器故障的原因。