File: //usr/syno/lib/systemd/scripts/synoovs-db.sh
#!/bin/bash
case $1 in
start-pre)
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
rm /tmp/synoovs.db
/usr/bin/ovsdb-tool create /tmp/synoovs.db $ovsschema
# synoovs-db and synoovs-vswitch use same runtime directory
# remove this if systemd support RuntimeDirectoryPreserve
run_dir="/var/run/openvswitch"
if [ ! -f "$run_dir" ]; then
mkdir -p $run_dir
fi
;;
start-post)
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
;;
stop-post)
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
;;
esac
exit 0