Мне нужно указать порядок загрузки для запуска процессов. У меня 389 Directory Server и Samba, работающие на Fedora 18. Как я могу загрузить сетевые службы, затем 389 DS, затем Samba? Есть ли графический интерфейс для управления этим в Fedora?
Я включил Samba для начала systemctl enable smb.service
. Я также включил 389 DS с systemctl enable dirsrv.target
.
Ответы:
Используйте
systemctl edit smb.service
для обновления зависимостей.After=dirsrv.target
- Убедитесь, что smb.service запущен после dirsrv.target.Для надежности (что будет полезно, если вы возитесь с этим), вы также можете включить некоторые из следующих элементов:
Requires=dirsrv.target
- Активируйте dirsrv.target, когда smb.service активирован. В случае сбоя dirsrv.target произойдет сбой smb.service.Wants=dirsrv.target
- Активируйте dirsrv.target, когда smb.service активирован. Не приведет к сбою smb.service в случае сбоя dirsrv.target.BindsTo=dirsrv.target
- Если dirsrv.target деактивирован, деактивируйте smb.service.Источник: http://www.freedesktop.org/software/systemd/man/systemd.unit.html
systemd-ui
предоставляет графический интерфейс для systemd. Дает хороший обзор состояния systemd, но вам все равно придется использовать текстовый редактор для изменения файлов модулей.источник
/usr/lib/systemd
версии файлов модулей, если вы не являетесь сопровождающим дистрибутива, или вам не нравится, когда ваши файлы перезаписываются при каждом обновлении пакета. Либо скопируйте файл модуля в/etc/systemd
и затем отредактируйте, либо используйте раскрывающийся файл (подробности см. В systemd.unit (5)). Еще проще, просто используйте,systemctl edit smb.service
который делает волшебный файл автоматически!Сделать две вещи:
Отредактируйте
/lib/systemd/system/smb.service
файл модуля, чтобы указать зависимость.[unit]
Раздел содержитAfter=
строку , которая определяет , какие услуги / цели должны быть достигнуты до этого.Измените это на:
Сообщите об этой зависимости в Fedora как об ошибке , чтобы ее можно было включить в будущие выпуски.
источник
unit
файлы, вы должны обычно запускатьsystemctl daemon-reload
вам может понадобиться изменить или включить строку с
Requires
директивой в[Unit]
разделе/usr/lib/systemd/system/smb.service
файла.а также
источник
Существует две альтернативы для изменения файла службы в
/usr/lib/systemd/system
(см. Пример 2. Переопределение настроек поставщика ):Скопируйте файл
/etc/systemd/system
и внесите изменения в копию. Этот файл полностью переопределит файл в/usr/lib
.Создайте файл
/etc/systemd/system/smb.service.d/local.conf
. Содержимое файла должно быть примерно таким, как в примере ниже. Это выборочно отменяет параметры «Требуется» и «После» в файле предоставляемых поставщиком услуг.Каждый из них (включая изменение файла в
/usr/lib
) имеет свои преимущества и недостатки. Лучший выбор может зависеть от сервиса и характера модификаций.Хотя это может работать, недостаточно только добавить опцию «После» (см. Раздел «[Единицы]» ). «После» контролирует порядок, но не зависимости. Если
dirsrv.target
не запускается каким-либо другим способом, указание заказа не запустит его. Использование параметров «Требуется» или «Требуется» приведетdirsrv.target
к запуску.NB: я не знаю, был ли этот подход доступен, когда этот вопрос был первоначально задан.
источник