使用systemd和legacy init.d服务的服务顺序

在我的Fedora 23系统上,一个数据库由systemd启动。 依赖于该数据库的另一个服务(configuration单元variables)是通过init.d脚本启动的。 我不清楚什么才是正确的方式,使这些服务开始在正确的顺序(数据库之前configuration单元-megastore)。

最好的解决scheme很可能就是编写一个系统化的单元用于configuration单元服务 – 只要系统具有相同的名称systemd将优先于初始化脚本使用它,并且可能会更容易阅读更可靠。

您可以通过将Before=hive-metastore.service添加到数据库服务单元来控制sorting。 最好使用dropin片段完成,所以创build类似于/etc/systemd/system/database-name.service.d/hive-metastore.conf内容:

 [Unit] Before=hive-metastore.service 

如果两者都是本机系统单元,那么你不会做什么,因为在这种情况下,你可能会将configuration添加到其他服务中,并且同时使用After来控制sorting,并且Requires确保数据库已经启动,但是单独的sorting如果两个服务都已启用,并且可以从依赖关系的任一端控制sorting,那么就足够了。