Страница 1 из 1

rc.d

Добавлено: 2008-06-18 9:38:47
Grishun_U_S
Добрый день!

Пытаюсь разобраться как работает rc.conf совместно со скриптами из каталога rc.d
Моя версия до недавнего времени была следующей :
кладем скрипт в rc.d и после этого мы имеем возможность писать в rc.conf строки вида

Код: Выделить всё

имяскрипта_enable="YES"
при следующей перезагрузке выполнится скрипт "имяскрипта". Вроде все так. Да не так.
Рассказываю что у меня произошло :
в rc.d лежало 2 скрипта, например "скрипт1" и "скрипт2" оба они отвечают за установление соединений ppp и маршрутизацию. В rc.conf написано

Код: Выделить всё

скрипт1_enable="YES"
скрипт2_enable="NO"
после перезагрузки маршрутизация вышла такой что я потом не смог повторить при запуске обоих скриптов вручную в любых комбинациях. Траф ушел по дорогому каналу и я попал на бабки.
Читаю man rc.d, что - то пока не нашел ответа...
И вот еще в чем вопрос : скрипты различных демонов имеют ключи типа start/restart/stop если выполнять их вручную то вопросов не возникает что напишешь то и будет, а как передавать эти параметры при загрузке? Писать скрипт, который будет выполнять скрипт?
Причем смущает что

Код: Выделить всё

sshd_enable="YES"
включает sshd безо всяких других вопросов...

Re: rc.d

Добавлено: 2008-06-18 9:55:15
terminus

Re: rc.d

Добавлено: 2008-06-18 9:56:14
zingel
всё проще, добавляем в /etc/rc.d/ что-либо аля

Код: Выделить всё

[root@zingel /serv/web/cgi-bin]# cat /etc/rc.d/mklagg
#!/bin/sh
#
# PROVIDE: mklagg
# BEFORE: netif
# KEYWORD: nojail

. /etc/rc.subr
. /etc/network.subr

name="mklagg"
rcvar=`set_rcvar`
start_cmd="mklagg_start"
stop_cmd="mklagg_stop"

mklagg_start()
{
        ifconfig rl0 up
        ifconfig nfe0 up
        ifconfig lagg0 create
        ifconfig lagg0 up laggproto lacp  laggport rl0 laggport nfe0
        ifconfig lagg0 192.168.0.189  netmask 255.255.255.0
        route add -net 0.0.0.0 192.168.0.1 0.0.0.0
        ifconfig lagg0 up
        /etc/netstart

}

mklagg_stop()
{
}

load_rc_config $name
run_rc_command "$1"

Re: rc.d

Добавлено: 2008-06-18 11:28:24
Grishun_U_S
О, то что нужно! (чтобы жить дружно). СПС.

Re: rc.d

Добавлено: 2008-06-18 11:30:14
Grishun_U_S
zingel писал(а):всё проще, добавляем в /etc/rc.d/ что-либо аля

Код: Выделить всё

[root@zingel /serv/web/cgi-bin]# cat /etc/rc.d/mklagg
#!/bin/sh
#
# PROVIDE: mklagg
# BEFORE: netif
# KEYWORD: nojail

. /etc/rc.subr
. /etc/network.subr

name="mklagg"
rcvar=`set_rcvar`
start_cmd="mklagg_start"
stop_cmd="mklagg_stop"

mklagg_start()
{
        ifconfig rl0 up
        ifconfig nfe0 up
        ifconfig lagg0 create
        ifconfig lagg0 up laggproto lacp  laggport rl0 laggport nfe0
        ifconfig lagg0 192.168.0.189  netmask 255.255.255.0
        route add -net 0.0.0.0 192.168.0.1 0.0.0.0
        ifconfig lagg0 up
        /etc/netstart

}

mklagg_stop()
{
}

load_rc_config $name
run_rc_command "$1"
и потом пишем в rc.conf

Код: Выделить всё

mklagg_enable="YES"
и получается выполнение этого скрипта при старте системы, я правильно понимаю?

Re: rc.d

Добавлено: 2008-06-18 11:33:26
zingel
истинно так

Re: rc.d

Добавлено: 2008-06-18 11:45:46
Grishun_U_S
zingel писал(а):истинно так
Понятно. У меня-то "простые" скрипты были, что-то типа :

Код: Выделить всё

#!/bin/sh

route add .....
echo OK
..............