Заказ услуг с использованием системных и устаревших сервисов init.d
В моей системе Fedora 23 база данных запускается systemd. Другая служба (hive-metastore), зависящая от этой базы данных, запускается с помощью сценария init.d. Мне неясно, как правильно запустить эти сервисы в правильном порядке (база данных до hive-megastore).
1 ответ
Вполне вероятно, что лучшим решением будет просто написать системный модуль для службы 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
чтобы убедиться, что база данных запущена, но одного порядка достаточно, если включены обе службы, и порядок можно контролировать с любой стороны зависимости.