Мой вопрос точно такой же, как этот вопрос кроме хочу поменять сервисы во FreeBSD.
Я провел небольшое исследование и нашел команду rcorder, которая предоставляет полный порядок услуг с указанными ниже параметрами.
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
Кроме того, я могу добавить опцию REQUIRE к любому сценарию rc.d, чтобы запустить мою службу перед ним. Мне это не понравилось, потому что я не хочу менять rc.d скрипты других программ. Есть ли более правильный способ сделать это?
Спасибо...
Порядок запуска rc определяется rcorder
, как вы уже определили.
Этот процесс определения порядка запуска является автоматическим, и страница руководства для rcorder
относительно не требует пояснений, но вы можете потратить некоторое время на просмотр Практические сценарии rc.d, а rc
страница руководства прежде чем вносить какие-либо изменения.
В вашем конкретном случае вы можете сообщить rcorder, что ваш скрипт предпочитает запускать BEFORE:
другие скрипты (с использованием BEFORE
ключевое слово), но это следует делать только по уважительной причине и в определенных пределах.
Из статьи «Практический сценарий rc.d»:
Примечание. Не следует злоупотреблять строкой BEFORE: для обхода неполного списка зависимостей в другом скрипте. Подходящий случай для использования BEFORE: - это когда другой скрипт не заботится о нашем, но наш скрипт может лучше выполнять свою задачу, если запускается до другого. Типичный пример из реальной жизни - сетевые интерфейсы и брандмауэр: хотя интерфейсы не зависят от брандмауэра при выполнении своей работы, безопасность системы выиграет от того, что брандмауэр будет готов до того, как появится сетевой трафик.
И дополнительно
Имейте в виду, что указание имени службы в строке REQUIRE: не гарантирует, что служба действительно будет запущена к моменту запуска нашего скрипта. Требуемая служба может не запуститься или просто отключена в rc.conf (5). Очевидно, что rcorder (8) не может отслеживать такие детали, и rc (8) не будет этого делать. Следовательно, приложение, запущенное нашим скриптом, должно уметь справляться с недоступностью любых необходимых сервисов.
Конечно, исправлять существующие скрипты - плохая идея, они будут перезаписаны после обновления. Вы можете создать другой сценарий, который ничего не делает, но содержит ключевые слова REQUIRE и BEFORE, таким образом он поменяет порядок двух других сценариев.