LinuxForum.Fans
Тема

Автозапуск скрипта

Автор: skill 4 сообщений 5661 просмотров
03.07.2014 17:30 #385718

Имеется скрипт, как уже очевидно, необходимо его автоматизировать..
Скрипт выполняет некоторый конфиг netgraph, руками запускается и все работает.. думаю дело в зависимостях, но не могу понять чего именно не хватает в #REQUIRE. Мб кто знает.

Ах да, в /etc/rc.conf автозапуск стоит и chmod 755 тоже настроен.

text

#!/bin/sh
#PROVIDE: script_graph
#REQUIRE: NETWORKING
#KEYWORD: shutdown

echo $PATH

. /etc/rc.subr

name="script_graph" rcvar=${name}_enable

load_rc_config $name

: ${script_graph_enable="NO"} : ${script_graph_user="root"}

start_cmd="start" stop_cmd="stop" restart_cmd="restart"

self=192.168.122.* peer=192.168.122.* port=7777 iface=le0 start() { /bin/echo "Starting netgraph switch." /usr/sbin/ngctl mkpeer ${iface}: bridge lower link0 /usr/sbin/ngctl name ${iface}:lower virt /usr/sbin/ngctl connect virt: ${iface}: link1 upper /usr/sbin/ngctl mkpeer virt: ksocket link2 inet/dgram/udp /usr/sbin/ngctl name virt:link2 virtsocket /usr/sbin/ngctl msg virtsocket: bind inet/${self}:${port} /usr/sbin/ngctl msg virtsocket: connect inet/${peer}:${port} /usr/sbin/ngctl msg ${iface}: setpromisc 1 /usr/sbin/ngctl msg ${iface}: setautosrc 0 /usr/sbin/ngctl mkpeer virt: eiface link3 ether /usr/sbin/ngctl name virt:link3 lala /sbin/ifconfig ngeth0 link 00:5d:16:10:dd:76 /sbin/ifconfig ngeth0 inet 192.168.122.12 /bin/echo "Ok." } stop() { /bin/echo "Stopping netgarph switch." /usr/sbin/ngctl shutdown virtsocket: /usr/sbin/ngctl shutdown virt: /usr/sbin/ngctl shutdown lala: /bin/echo "Ok." }

restart() { /bin/sh $0 stop /bin/sh $0 start } qwe() { /bin/echo "Usage: 'basename $0' {start|stop|restart}" }

run_rc_command "$1"

P.S. я новичок, поэтому если можно подробнее ответы)

04.07.2014 09:14 #385831

Попробуйте заменить #REQUIRE: NETWORKING на #REQUIRE: LOGIN

И посмотрите порядок старта скриптов командой

text
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
04.07.2014 11:27 #385847

Замена на LOGIN делалась ранее и ни к чему не привела(
А команда rcorder /usr/local/etc/rc.d/* вывела как ни странно одну единственную строку с путем к моему скрипту.
А rcorder /etc/rc.d/* кучу всего. Включать все подряд не хочу, мб дело в подгрузке нетграфовских модулей. не знаю..
Но спасибо за вариант.

04.07.2014 16:50 #385873

Задача решена.
Было необходимо расширение sh.
=)

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