gpt4 book ai didi

node.js - Upstart 和 init.d 优先级

转载 作者:IT王子 更新时间:2023-10-29 06:02:34 26 4
gpt4 key购买 nike

我使用 foreman在生产服务器(ubuntu 服务器 12)上运行我的 node.js 应用程序。Foreman 有一个很棒的工具可以为 Upstart 创建脚本。

问题是,当我重新启动服务器时,我的应用程序(由工头管理)在 redis-server 之前启动,我必须构建一些技巧以等待有效连接。

理想的解决方案是先启动redis-server,然后再启动 Node 应用程序。

启动配置:

  • redis-server由/etc/init.d/redis-server启动,为/etc/rc2.d/S20redis-server
  • 我的 Node 应用程序是使用/etc/init/stocks-streamer*.conf 文件启动的

我的问题是:您将如何更改我的 Node 应用程序的启动顺序?我想在我的应用程序启动之前等待 redis-server,但是当我这样做时,它没有启动:

start on (started redis-server)

我想这是因为没有事件从 init.d 脚本发送到 Upstart ,但也许有一种我不知道的方式?

预先感谢您的帮助!

最佳答案

也许你应该让 foreman 启动 redis,这样你就可以更好地控制应用程序的所有依赖项。

或者确保 foreman 启动的时间比 redis 晚很多(​​确保/etc/rc2.d 中的 foreman 链接列出晚于 S20*。

另一种选择:让 redis 服务器也由 upstart 启动,这可能会帮助 upstart 管理依赖项。

这里有关于如何做到这一点的解释:https://gist.github.com/bdotdub/714533

我建议改用“启动必须先于其他服务”( http://upstart.ubuntu.com/cookbook/#start-must-precede-another-service ),以便在您启动自己的服务时启动 redis。

关于node.js - Upstart 和 init.d 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com