LinuxForum.Fans
Тема

Help: Опять rc.d скрипты: не работает command_arg

Автор: Fast_Deer 4 сообщений 5404 просмотров
#295040

Господа, взываю о помощи ибо уже третий час ночи и моск уже отказывается понимать происходящее!
Есть 2 скрипта: один находится в каталоге rc.d и должен запускать другой из домашнего каталога пользователя. И он вызывает и скрипт отрабатывается (то есть проблема не в правах доступа), но прога не работает так как не передаются дополнительные аргументы описанные в первом скрипте в параметре command_arg. привожу внизу кусок кода который переделал под тестирование сохраняя то что натворил
Пояснения: для дебагинга из первого скрипта вызываю другой а в другом просто отображаю параметры вызова

скрипт первый: /etc/rc.d/teamspeak3

text
#!/bin/sh
#Create an rc script for TeamSpeak 3

# PROVIDE: teamspeak3 # REQUIRE: DAEMON # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # teamspeak3_enable (bool): Set to NO by default. # Set it to YES to enable teamspeak3. #

. /etc/rc.subr

name="teamspeak3" rcvar=`set_rcvar`

load_rc_config $name

command="/home/teamspeak/teamspeak3-server_freebsd-amd64/ts3server.sh" command_arg="ARGUMENTS" procname="ts3server_freebsd_amd64" pidfile="/var/run/${name}.pid"

echo -e "\nскрипт /rc.d/teamspeak3\n" echo -e "teamspeak3_user = $teamspeak3_user \n pidfile = $pidfile \n teamspeak3_flag = $teamspeak3_flag\n" echo -e "Старт программы с параметрами ${0}, ${1}, ${2}".

run_rc_command "$1"

скрипт второй: home/teamspeak/teamspeak3-server_freebsd-amd64/ts3server.sh

text
#!/bin/sh
# запуск непосредственно демона.

echo -e "Старт программы с параметрами ${0}, ${1}, ${2}, $command_arg\n".

настройки: /etc/rc.conf

text
# Starting Teamspeak3 server
teamspeak3_enable="YES"
#teamspeak3_user="teamspeak"
teamspeak3_flag="-x"

при запуске не выводит ни "-х" ни "ARGUMENTS"
что я тут неправильно понял или сделал?
ЗЫ: в документации написано:

Дополнительные аргументы команде $command можно передать в переменной command_args. Эти аргументы будут добавлены в командную строку после значения переменной $mumbled_flags. Поскольку командная строка, получившаяся в результате этих преобразований передается команде eval, то перенаправления ввода-вывода могут быть указаны в переменной command_args.
#297644

Во первых посмотрите где реально лежит скрипт запуска тимки. Он может лежать как в /etc/rc.d так и в /usr/local/etc/rc.d или в /usr/local/sbin (не помню) - и попробуйте запустить сервер тимки именно оттуда скриптом запуска. Потом #ps -ax и смотрим как запустился сервер. Далее думаю разберетесь.

#297812
"Fast Deer" написал:
command_arg="ARGUMENTS"
"Fast Deer" написал:
teamspeak3_flag="-x"

А если почитать

text
man rc.subr

и попробовать изменить на:

text
command_args="ARGUMENTS"
text
teamspeak3_flags="-x"
#304130

Спасибо всем за ответы - я разобрался не без вашей помощи. Все таки ночные бдения плохо влияют на "моск" и он включает тупняка: писал "command_arg" вместо "command_args"
Тему можно закрыть

Войдите или зарегистрируйтесь, чтобы ответить.