首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js重新生成inittab太快

Node.js重新生成inittab太快
EN

Stack Overflow用户
提问于 2014-07-02 10:35:04
回答 2查看 493关注 0票数 1

因此,我尝试在一台嵌入式计算机上保持Node服务器在现场运行。这导致我利用inittab的重新生成操作。下面是我添加到inittab的文件:

node:5:respawn:node /path/to/node/files &

我知道一个事实,当我从命令行启动这个节点应用程序时,它不会到达主体的底部,直到我发出命令后2-3秒才console.log“完成”。

因此,我感觉在2-3秒的窗口中,操作系统只是不断地重新启动节点应用程序。我也在错误日志中看到,事实上内核最终杀死了一堆节点进程,因为它耗尽了内存和其他东西……另外,我确实得到了'node‘进程更新太快也会暂停5分钟的消息。

我试着把它包装在一个脚本中,做一些工作。我知道我可以使用crontab,但那是每一分钟……我做错了什么吗?或者我应该一起使用一种不同的方法?

欢迎任何建议!

提亚

EN

回答 2

Stack Overflow用户

发布于 2015-06-19 23:05:19

对您来说肯定太晚了,但以防其他人发现这样的问题:尝试从命令调用中删除&

发生的情况是,当命令转到后台时(多亏了&),父进程(init)看到它退出了,并重新唤醒它。结果:你的命令产生了新的瞬间风暴。更糟糕的是,您提到了嵌入式,所以我猜您使用的是busybox,它的init不会限制重新生成的速率--就像其他实现一样。因此,只有当系统内存不足时,重新生成才会结束。

票数 1
EN

Stack Overflow用户

发布于 2014-07-18 03:21:56

inittab在这方面有点过头了。我发现我需要的是一个进程监控器。我发现了一个轻量级的,高效的;它有一些很好的报告,在这个领域工作得很好。http://en.wikipedia.org/wiki/Process_control_daemon

使用它需要配置这个守护进程来为您启动和监视Node.js应用程序。

这是一种从操作系统端工作的解决方案。

另一种方法如下所示。因此,如果你想像我一样保持Node.js运行,有几个模块是为了保持其他Node.js应用程序的运行而编写的。提到一对夫妇,他们是永生和重生的。我选择了使用respawn。

这种方法需要启动一个用Node.js编写的应用程序,该应用程序使用respawn模块来启动和监视您感兴趣的实际Node.js应用程序,无论如何,它都会继续运行。

当然,这样做的缺点是,如果Node.js引擎(V8)完全崩溃,那么您的监视和被监视的进程也将随之崩溃:-(。但总比什么都没有好!

PCD将是理想的选择。它可能只会在操作系统关闭的情况下才会关闭,如果操作系统关闭,那么希望有一个看门狗在适当的地方重新启动设备/硬件。

尼科

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24522020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档