Страница 1 из 1

Выполнение Скрипта перед Запуском Дэмона/Сервиса

Добавлено: 2019-10-23 14:37:57
CrazyMihey
Благоприятной Кармы Всем, читающим этот Вопрос!
Подскажите, пожалуйста, Знающие Админы, как осуществить Subj при НижеОписанных Условиях.
Задача следующая: Запускается некий Дэмон, для Примера, назовём Его «hostapd». Непосредственно перед самым Запуском (Точнее только на: start, restart и reload) хочу выполнять Свой Скриптик, который призван подрихтовать некий Конфиг, назовём Его, к примеру, «/etc/hostapd.conf». Осуществить Запуск необходимо из «/etc/rc.conf», не перекорячивая при этом «/etc/rc.d/hostapd» или какие-либо другие Файлы из «/etc/*». Естественно, «/etc/rc.conf» и «/etc/hostapd.conf» будут изменены, но Они «не входят» в Поставку FreeBSD и Их редактирование не вызывает распухания Камасутры при выполнении «make installworld».
В Документации и Статьях по Системе «rc.d» в основном описывается Процесс создания Собственного Дэмона, но в данном случае Задача стоит другая: Приколхозить Свой Скрипт на ЗаПуск/ПереЗаПуск уже существующего.
Собственно, сам Вопрос состоит в том, как докопаться до Переменных, вроде «start_precmd», «reload_precmd» и «restart_precmd» из Конфигурационного Файла «/etc/rc.conf», не изменяя другие Файлы? Или Я что-то НеДоПонимаю?
Пока сделал так «/etc/rc.conf»:

Код: Выделить всё

hostapd_enable="Yes"
hostapd_flags="${hostapd_flags}$([ -x /root/bin/CheckHostApD ] && /root/bin/CheckHostApD >/dev/null 2>&1)"
Но осознаю, что Это Решение в Корне неправильное и жутко костыльное. Покопавшись во Фряшных Скриптах, обнаружил, что «/etc/rc.conf» может подцепляться везде и всюду, т.е. Мой Скрипт будет выполняться десятки раз впустую. Скрипт оптимизировал, конечно, но это всё равно не Решение.
Также была осуществлена попытка добавления в Конфиг «/etc/hostapd.conf» Динамических Параметров вида:

Код: Выделить всё

channel="$(sed -E -e "…" "/etc/rc.conf")"
Но Это не сработало вообще. Видимо, «/etc/hostapd.conf» читается как «Обычный Файл Настроек "Param=Value"» и не прогоняется через SH (Может туда Шебанг надо было запихнуть?).
Заранее Благодарю Всех Откликнувшихся!
P.S. НеОбХодимость периодического «make installworld» и НеТрогания «/etc/*» — Вопрос Риторический и Тема для Жирного ХолиВара, который не хотелось бы разворачивать здесь.

Выполнение Скрипта перед Запуском Дэмона/Сервиса

Добавлено: 2019-10-24 0:18:08
snorlov
Вы конкретику дайте, о каком демоне идет речь, может там такой демон, у которого пре и после скрипты можно указать...
Лучше взять стандарный скипт запуска нужного сервиса, на его основе написать свой, и переименовать его, ну будет запускаться сервис к примеру не hostapd, а hostapd_my...

Выполнение Скрипта перед Запуском Дэмона/Сервиса

Добавлено: 2019-10-24 1:16:29
CrazyMihey
Спасибо, буду рыть в Этом направлении.
В Стандартном Переменные «start_precmd», «reload_precmd» и «restart_precmd» не задаются. Попробую сделать Свой в «/usr/local/etc/rc.d/» и в конце через Точку «.» подцепить уже Существующий из «/etc/rc.d/», только вижу, что придётся придётся копировать Комменты типа:

Код: Выделить всё

# PROVIDE: …
# REQUIRE: …
# KEYWORD: …
, возможно, ещё что-то.