使用systemd严格保证启动顺序

需求:

  服务B要在服务A之后启动,且由于存在强内在依赖关系,B必须在A完成初始化之后才能被启动。

解决方法:

  首先使用systemd,service脚本需要配置服务B要after服务A。

  其次,A服务的service脚本需要配置Type=notify,并且NotifyAccess=all或main。详见man 5 systemd.service。

  最后,修改A服务的源码,在其完成初始化工作后,调用sd_notify,并传入状态:READY=1。详见man 3 sd_notify。

本方法是从网上搜集整理来的,看起来可行,但是本人尚未做过验证。

原文地址:https://www.cnblogs.com/shijianyujingshen/p/9470150.html