Здравствуйте, Eugene.
> Вы запутались в синтаксических конструкциях шелла, > которыми, увы, владеете совсем нетвердо. >> name=`echo $0 | sed 's/.*\///'` > Потрассируем: > name=mpd5 >> rcvar=${name}_enable > rcvar=mpd5_enable >> var=`eval echo $name`_enable > var=mpd5_enable >> eval $var="NO" > mpd5_enable=NO > То есть, тут принудительно mpd5_enable сброшено в NO. > Не думаю, что так задумано. Все верно, именно так все и задумано. Если в /etc/rc.conf пропущена строка mpd5_enable="YES" Чтобы переменная не потерялась, и установилась в NO >> var1=`eval echo $name`_flags >> eval $var1="-b" > И тут тоже mpd5_flags принудительно сбрасывается в -b. > Каждое использование обратных апострофов это запуск сабшелла, не надо так. > Надо вот как: > name=${0##*/} # а ещё лучше не извращаться и написать просто name=mpd5, так > читабельней > rcvar=$name_enable # тут будет rcvar=mpd5_enable > eval var=\$$name_enable # тут будет var=$mpd5_enable Да, действительно, так лучше. Спасибо. > Но и это тоже всё сплошь плохо читаемые и никому ненужные усложнения. > Делайте нормально: > name=mpd5 > rcvar=$name_enable # или даже rcvar=mpd5_enable > : ${mpd5_enable:=NO} # если mpd5_enable пусто, то присвоить NO, > иначе не менять На самом деле все это писалось для того, чтобы потом скрипт этот не править а просто сделать копию с другим именем, добавить конфиг со следующим IP и стартовать mpd5 в новой таблице маршрутизации ...fib=1 >> Плюс, если кто знает, как можно проверить работоспособность >> стартовых скриптов не перезагружая сервер. Как я понял, команды >> start/stop не совсем показатель того, что все ок. > start/stop показатель, если сам скрипт не содержит ошибок. > А если сам скрипт сбрасывает mpd5_enable в NO... > Такие ошибки можно искать через sh -x /usr/local/etc/rc.d/mpd5 start 2>&1 Да, но скрипт нормально стартует при запущенной системе. Он не отрабатывает только при старте. Как правильно заметил Michael A. Revenko, >environment для пользователя и init процесса весьма разные. >можно попробовать >env -i /usr/local/etc/rc.d/mpd5 (start|status|stop) Спасибо всем за помощь. ----------------- С уважением, Крылов Алексей тел. +38 (067) 725 95 54 email: kry...@ukr.net skype: krylov_alexey