Помогите изменить скрипт /etc/init.d/dictd (<br />совсем тривиальный вопрос про параметры запуска)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

little Jon
Сообщения: 212

Помогите изменить скрипт /etc/init.d/dictd

Сообщение little Jon »

Заранее извиняюсь за совсем тривиальный вопрос
Дело в следующем, у меня кодировка KOI8-R, и мне надо запустить демон dictd c параметром --locale ru_RU.KOI8-R.
Сколько я не пытался изменить стартовый скрипт ничего не получалось. Написал отдельный скрипт вызыва демона с параметром и запустил этот скрипт из /etc/init.d/dictd демон работает, иначе демон падает без каких либо записей в лог.
Как передать параметр запуска более традиционно?

$ cat /etc/init.d/dictd
#! /bin/sh
#
# Script to start and stop dictionary server daemon (/usr/sbin/dictd)
# written by Bob Hilliard <hilliard@debian.org> 15 April 1988, last
# modified on 30 January 2003.
# based on /etc/init.d/skeleton v1.7 05-May-1997 by miquels@cistron.nl

# dictd now drops root permissions as soon as it starts, so it is no
# longer necessary to use `su nobody' when starting it.

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/dictd
NAME=dictd
DESC="dictionary server"
# DICTD_ARGS="--locale ru_RU.KOI8-R" эту строку я добавлял для передачи параметра
# DAEMON.SH=/usr/sbin/dictd.sh написанный мной скрипт запуска демона


test -f $DAEMON || exit 0

. /etc/default/dictd

set -e

case "$1" in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS}
[i] # примеры, как я пытался запустить демон
# start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS} не работает демон падает (для чего скобки не знаю)
# start-stop-daemon --start -o -c dictd --exec $DAEMON -- $DICTD_ARGS не помогло, демон падает
# start-stop-daemon --start -o -c dictd --exec $DAEMON.SH все работает нормально, но такой вариант мне кажется не корректным

echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop -o --name $NAME --exec $DAEMON
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop -o --name $NAME --exec $DAEMON
sleep 1
start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS}
echo "."
;;
reload)
echo -n "Reloading configuration files for $DESC: $NAME"
start-stop-daemon --stop --signal 1 -o --quiet --name $NAME --exec $DAEMON
echo "."
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload|force-reload}"
exit 1
;;
esac

exit 0


Linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение Aectann »

А если прописать переменную DAEMON как:
DAEMON="LANG=ru_RU.KOI8-R /usr/sbin/dictd"
или
DAEMON="/usr/sbin/dictd --locale ru_RU.KOI8-R"
?
My god... it's full of stars!...
Спасибо сказали:
little Jon
Сообщения: 212

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение little Jon »

DAEMON="/usr/sbin/dictd --locale ru_RU.KOI8-R" Оно конечно так тоже можно, только зачем в стартовой строке описана переменная DICTD_ARGS ?
start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS}

Я понимаю, что здесь вопрос из серии "Вам с шашечками или ехать?" Но есть желание соблюсти заложенные идеи и принципы.


Linuxforum@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение sash-kan »

(little Jon @ Sep 24 2006, в 16:11) писал(а):Но есть желание соблюсти заложенные идеи и принципы.
насколько я понимаю, заложенные принципы звучат так:
в файле /etc/default/dictd есть строка вида:
DICTD_ARGS="bla-bla-bla"
вот вместо этих bla-bla-bla (или после них) надо и указывать требующиеся параметры.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Aectann
Бывший модератор
Сообщения: 3491
Статус: ...
ОС: OS X, GNU_и_не_только/Linux

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение Aectann »

Тьфу, до меня кажется дошло в чем проблема. Вот команда, которая должна запускать демон.
start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS}
Вот переменная с параметрами запуска:
DICTD_ARGS="--locale ru_RU.KOI8-R"

Здесь два раза ставится "--", потому ничего не работает. Вобщем нужно убрать два тире или из одного, или из другого выражения. Но чтоб "cоблюсти заложенные идеи и принципы", наверное, лучше так:

start-stop-daemon --start -o -c dictd --exec $DAEMON ${DICTD_ARGS} //два тире перед DICTD_ARGS убрали
My god... it's full of stars!...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение sash-kan »

Aectann
вообще-то в команде
start-stop-daemon --start -o -c dictd --exec $DAEMON -- ${DICTD_ARGS}
отдельно стоящие два минуса отделяют аргументы программы start-stop-daemon от аргументов запускаемого ею демона.
вот здесь:
(little Jon @ Sep 24 2006, в 09:20) писал(а):# DICTD_ARGS="--locale ru_RU.KOI8-R" эту строку я добавлял для передачи параметра

little Jon действовал неправильно. потому что двумя строчками ниже идет команда
(little Jon @ Sep 24 2006, в 09:20) писал(а):. /etc/default/dictd
которая и подгружает из файла /etc/default/dictd необходимые демону переменные. в том числе и DICTD_ARGS.
и именно в этом файле нужно прописать эту переменную.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Rem
Сообщения: 3

Re: Помогите изменить скрипт /etc/init.d/dictd

Сообщение Rem »

Доброго времени суток!:)Недавно поставил Debian , и столкнулся с траблой : нужно отключить пару демонов при загрузке , а не знаю команду ( что то вроде chkconfig ) Подскажите плз...
Спасибо сказали: