Есть скрипт в rc.d у которого есть вот такая строчка:
Код: Выделить всё
trac_flags="-d -p ${trac_port} -b ${trac_host} --pidfile=${pidfile} --basic-auth=${NAMEDIR_PROJECT_1},${PATH_PASSFILE_1},${NAME_REALM_1} ${DIR_PRO
JECT_1}"
к этому rc.d скрипту подключается конфиг файл так
Код: Выделить всё
. "/usr/local/etc/trac.conf"
в котором
DIR_PROJECT_1="/usr/local/www/trac/myproject"
NAMEDIR_PROJECT_1="myproject"
PATH_PASSFILE_1="/usr/local/www/trac/.htpasswd"
NAME_REALM_1="My Realm Name"
Все отлично запускается.
Вот тут у меня и возникает вопрос, как все может работать правильно?
Что бы отдебажить сие чудо добавил в скрипт запуска вот такое:
Код: Выделить всё
echo "/usr/local/bin/tracd" ${trac_flags}
и получил в ответ при запуске скрипта такое:
Код: Выделить всё
/usr/local/bin/tracd -d -p 3333 -b 10.72.0.14 --pidfile=/var/run/trac/trac.pid --basic-auth=myproject,/usr/local/www/trac/.htpasswd,My Realm Name /usr/local/www/trac/myproject
Меня волнует опция: --basic-auth, точнее фраза My Realm Name которая содержит пробелы .
Саму демону передается данные так:
Код: Выделить всё
[root@florix]:/usr/local/etc/rc.d# tracd --help
Usage: tracd [options] [projenv] ...
То есть получается, что в [projenv] от rc.d скрипта должно передаться "Realm Name /usr/local/www/trac/myproject" вместо "/usr/local/www/trac/myproject" ... правильно?
И из-за этого соображения изначально я писал так:
Код: Выделить всё
trac_flags="-d -p ${trac_port} -b ${trac_host} --pidfile=${pidfile} --basic-auth=\"${NAMEDIR_PROJECT_1},${PATH_PASSFILE_1},${NAME_REALM_1}\" ${DIR_PROJECT_1}"
т.е. все что передается в --basic-auth= я заключил в экранированные кавычки чтоб получилось такое: (echo мне выдал это)
Код: Выделить всё
/usr/local/bin/tracd -d -p 3333 -b 10.72.0.14 --pidfile=/var/run/trac/trac.pid --basic-auth="myproject,/usr/local/www/trac/.htpasswd,My Realm Name /usr/local/www/trac/myproject" /usr/local/www/trac/gar
И тут демон матерится что ему недостаточно информации в --basic-auth=

И под конец, что меня убило... если я в консольно руками скопирую строчку (с экранированными кавычками)
Код: Выделить всё
/usr/local/bin/tracd -d -p 3333 -b 10.72.0.14 --pidfile=/var/run/trac/trac.pid --basic-auth="myproject,/usr/local/www/trac/.htpasswd,My Realm Name /usr/local/www/trac/myproject" /usr/local/www/trac/gar
и отправлю на сервер, демон запуститься без всяких проблем.
вот.. я что-то неправильно понимаю?
