Назад | Перейти на главную страницу

Порядок предоставления услуг с использованием сервисов systemd и legacy init.d

В моей системе Fedora 23 база данных запускается systemd. Другая служба (hive-metastore), которая зависит от этой базы данных, запускается с помощью сценария init.d. Мне неясно, как правильно запустить эти службы в правильном порядке (база данных до улья-мегастор).

Вполне вероятно, что лучшим решением будет просто написать модуль systemd для службы hive-metastore - если у него такое же имя, systemd будет использовать его вместо сценария инициализации, и его, вероятно, будет намного легче читать и намного надежнее.

Вы можете контролировать порядок без этого, добавив Before=hive-metastore.service в блок обслуживания базы данных. Лучше всего это делать с помощью фрагмента dropin, поэтому создайте что-нибудь вроде /etc/systemd/system/database-name.service.d/hive-metastore.conf с этим содержанием:

[Unit]
Before=hive-metastore.service

Это не совсем то, что вы сделали бы, если бы оба были встроенными модулями systemd, так как в этом случае вы, вероятно, добавили бы конфигурацию в другую службу и использовали бы оба After контролировать заказ и Requires чтобы обеспечить запуск базы данных, но одного заказа достаточно, если обе службы включены и упорядочение можно контролировать с любого конца зависимости.