File: //usr/share/init/synoovs-db.conf
description "OpenvSwitch Database daemon"
author "Advanced Network Team"
# do not start/stop on anything
console log
expect fork
respawn
respawn limit 5 10
pre-start script
ovsschema="/usr/share/openvswitch/vswitch.ovsschema"
SYNO_MODULE_TOOL="/usr/syno/bin/synomoduletool"
#insert kernel module
if [ -f /lib/modules/nf_conntrack.ko ]; then
$SYNO_MODULE_TOOL --insmod SYNOOVS nf_conntrack.ko nf_defrag_ipv6.ko || true
fi
$SYNO_MODULE_TOOL --insmod SYNOOVS gre.ko openvswitch.ko || true
/usr/bin/ovsdb-tool create /tmp/synoovs.db $ovsschema || true
run_dir="/var/run/openvswitch"
if [ ! -f "$run_dir" ]; then
mkdir -p $run_dir || true
fi
echo `/bin/date` "start openvswitch database server"
end script
exec /usr/sbin/ovsdb-server /tmp/synoovs.db \
--remote=punix:/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--pidfile --detach
post-start script
threads=`ps -C ovsdb-server --no-headers | wc -l`
retry=0
while [ $threads -gt 1 -a $retry -lt 10 ]
do
echo "wait for parent to exit"
retry=$(($retry+1))
sleep 1
threads=`ps -C ovsdb-server--no-headers | wc -l`
done
echo `/bin/date` "start openvswitch database server complete"
end script
pre-stop script
if /usr/syno/bin/synobootseq --is-safe-shutdown &>/dev/null; then
start; exit 0
fi
end script
post-stop script
echo `/bin/date` "stop the openvswitch database server"
SYNO_MODULE_TOOL="/usr/syno/bin/synomoduletool"
#rmmod kernel module
$SYNO_MODULE_TOOL --rmmod SYNOOVS openvswitch.ko gre.ko || true
if [ -f /lib/modules/nf_conntrack.ko ]; then
$SYNO_MODULE_TOOL --rmmod SYNOOVS nf_defrag_ipv6.ko nf_conntrack.ko || true
fi
end script
# vim:ft=upstart