进程启动顺序的一些疑问

发布于 2022-09-05 20:10:24 字数 596 浏览 15 评论 0

web服务进程是supervisor管理的, 项目依赖rabbitmq, 很多时候重启机器的时候, rabbitmq启动太慢了, 导致到supervisor起来的时候, 连带的web服务也起来, 可是由于rabbitmq没有起来, 所以导致web服务挂了, 每次重启都需要手动的去操作一下supervisor, 疑问是:

  • 有什么方法可以保证supervisor是在rabbitmq完整启动以后再启动的吗?
  • 或者是supervisor启动后, 底下的进程判断rabbitmq完整启动后再启动?
  • rabbitmqsupervisor都是service管理的, ubuntu系统级的启动顺序可以做到这个需求吗?
  • 除了写shell脚本来轮询判断, 还有什么更好的方法?
  • 谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心奴独伤 2022-09-12 20:10:24

没怎么用过rabbitmqsuopervisor,这里给点参考意见,希望对你有用

一般开启一些应用进程,应用服务做的比较(非常)好的话,会提供相应的命令去对进程做查询或者监听,你可以去看看rmqsupervisor的官网去看看,或者查看一下man找找是否有相关的命令参数操作.

如果没有的话,可以再看看下面的参考,自行编写shell脚本来管理:

1.应用程序一般开启时,开启后,会有几种信息:
日志信息,命令行界面信息,资源管理器进程信息等等.一个进程是否完全启动,或者是达到你所需要的状态,可以参考以上日志或信息作出判断

2.如果连上面的信息都没有或者无法判断的话,我给一个非常土的办法,那就是延时启动.这个办法并不是最好的,但是也是没有办法的办法(谁叫应用程序服务做的不到位).比如你要在启动rmq后启动supervisor,预估一下rmq的启动时间,比如1s,那就在执行启动rmq进程,延时一秒后执行supervisor

一个人练习一个人 2022-09-12 20:10:24

https://wiki.debian.org/LSBIn...
service管理当然能够做到,你把rmq接入到supervisor的依赖项里吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文