1

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

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

#!/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. я новичок, поэтому если можно подробнее ответы)

2

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

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

rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

3

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

4

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