LINUX.ORG.RU

rc_cmd не подхватывает переопределенные функции

 , rc.d


0

2

Всем привет. Немного offtopic, так как вопрос про скрипты инициализации OpenBSD. Может кто-то разбирается. Есть некий демон, для него есть rc.d скрипт вида:

daemon="/path/to/daemon"

. /etc/rc.d/rc.subr

pexp="perl: ${daemon}"

rc_start() {
	${daemon} start
}

rc_stop() {
	${daemon} stop
}

rc_cmd $1

В man написано, что можно переопределить rc_ функции и переменную pexp (регулярка, которую действие stop передаёт в pkill).

Проблема в том, что определённые в скрипте функции rc_start() и rc_stop при вызове:

/etc/rc.d/daemon_name start/stop

не вызываются. Это видно по sh -x и если вставить в них echo. Также значение pexp игнорируется: видно, что дефолтный обработчик stop вызывает pkill с регуляркой «^имя_демона».

Вопрос: что я делаю не так? Гуглить пробовал, ничего не нашёл.

☆☆☆☆☆

Ответ на: комментарий от Skolotovich

Спасибо, я уже разобрался. Дело было в том, что демон менял в процессе работы имя своего процесса, соответственно rc смотрел на запись в /var/run/rc.d/daemon_name, не находил процесс и думал, что никого убивать не надо. Поправил нужным образом pexp, чтобы при старте записывалась в /var/run нужная регулярка.

DELIRIUM ☆☆☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.