X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=debian%2Fopenvswitch-switch.init;h=ef92340fb5ee4e2bbe59115b7c37a7a31c505b1c;hb=07c2523c0c48a7b285b0931f33a49fc129f2c396;hp=bf71e7df7f898b1960cbd7524dd7a6f2ec89a304;hpb=6c1b89ed0e6b9934d63ae4d71ba885bfcb87891a;p=sliver-openvswitch.git diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init index bf71e7df7..ef92340fb 100755 --- a/debian/openvswitch-switch.init +++ b/debian/openvswitch-switch.init @@ -12,7 +12,7 @@ ### BEGIN INIT INFO # Provides: openvswitch-switch # Required-Start: $network $named $remote_fs $syslog -# Required-Stop: +# Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch switch @@ -33,11 +33,14 @@ DODTIME=1 # Time to wait for the server to die, in seconds unset OVSDB_SERVER_OPTS unset OVS_VSWITCHD_OPTS unset CORE_LIMIT +unset ENABLE_MONITOR default=/etc/default/openvswitch-switch if [ -f $default ] ; then - . $default + . $default fi +: ${ENABLE_MONITOR:=y} + set -e # running_pid pid name @@ -63,11 +66,11 @@ running_pid() # running name # # Checks for a running process named 'name' by looking for a pidfile -# named /var/run/${name}.pid +# named /var/run/openvswitch/${name}.pid running() { local name=$1 - local pidfile=/var/run/${name}.pid + local pidfile=/var/run/openvswitch/${name}.pid # No pidfile, probably no daemon present [ ! -f "$pidfile" ] && return 1 @@ -81,11 +84,11 @@ running() # force_stop name # # Checks for a running process named 'name', by looking for a pidfile -# named /var/run/${name}.pid, and then kills it and waits for it to -# die. +# named /var/run/openvswitch/${name}.pid, and then kills it and waits +# for it to die. force_stop() { local name=$1 - local pidfile=/var/run/${name}.pid + local pidfile=/var/run/openvswitch/${name}.pid [ ! -f "$pidfile" ] && return if running $name; then @@ -188,67 +191,101 @@ unload_modules() { done fi unload_module openvswitch_mod - unload_module ip_gre_mod } case "$1" in start) load_module openvswitch_mod - unload_module ip_gre - load_module ip_gre_mod if test -n "$CORE_LIMIT"; then check_op "Setting core limit to $CORE_LIMIT" ulimit -c "$CORE_LIMIT" fi + # Create an empty configuration database if it doesn't exist. + if test ! -e /etc/openvswitch/conf.db; then + install -d -m 755 -o root -g root /etc/openvswitch + + # Create configuration database. + ovsdb-tool -vANY:console:emer \ + create /etc/openvswitch/conf.db \ + /usr/share/openvswitch/vswitch.ovsschema + else + # Upgrade or downgrade schema and compact database. + ovsdb-tool -vANY:console:emer \ + convert /etc/openvswitch/conf.db \ + /usr/share/openvswitch/vswitch.ovsschema + fi + + if test "$ENABLE_MONITOR" = y; then + monitor_opt=--monitor + else + monitor_opt= + fi + + if [ ! -d /var/run/openvswitch ]; then + install -d -m 755 -o root -g root /var/run/openvswitch + fi + + if [ ! -d /var/log/openvswitch ]; then + install -d -m 755 -o root -g root /var/log/openvswitch + fi + # Start ovsdb-server. set -- + set -- "$@" /etc/openvswitch/conf.db set -- "$@" --verbose=ANY:console:emer --verbose=ANY:syslog:err - set -- "$@" --log-file - set -- "$@" --detach --pidfile - set -- "$@" --listen punix:/var/run/ovsdb-server - set -- "$@" /etc/openvswitch-switch/conf + set -- "$@" --log-file=/var/log/openvswitch/ovsdb-server.log + set -- "$@" --detach --pidfile $monitor_opt + set -- "$@" --remote punix:/var/run/openvswitch/db.sock + set -- "$@" --remote db:Open_vSwitch,managers + set -- "$@" --private-key=db:SSL,private_key + set -- "$@" --certificate=db:SSL,certificate + set -- "$@" --bootstrap-ca-cert=db:SSL,ca_cert set -- "$@" $OVSDB_SERVER_OPTS - echo -n "Starting ovsdb-server: " - start-stop-daemon --start --quiet --pidfile /var/run/ovsdb-server.pid \ - --exec $ovsdb_server -- "$@" + echo -n "Starting ovsdb-server: " + start-stop-daemon --start --quiet \ + --pidfile /var/run/openvswitch/ovsdb-server.pid \ + --exec $ovsdb_server -- "$@" if running ovsdb-server; then echo "ovsdb-server." else echo " ERROR." fi + ovs-vsctl --no-wait init + # Start ovs-vswitchd. set -- set -- "$@" --verbose=ANY:console:emer --verbose=ANY:syslog:err - set -- "$@" --log-file - set -- "$@" --detach --pidfile - set -- "$@" unix:/var/run/ovsdb-server + set -- "$@" --log-file=/var/log/openvswitch/ovs-vswitchd.log + set -- "$@" --detach --pidfile $monitor_opt + set -- "$@" unix:/var/run/openvswitch/db.sock set -- "$@" $OVS_VSWITCHD_OPTS - echo -n "Starting ovs-vswitchd: " - start-stop-daemon --start --quiet --pidfile /var/run/ovs-vswitchd.pid \ - --exec $ovs_vswitchd -- "$@" + echo -n "Starting ovs-vswitchd: " + start-stop-daemon --start --quiet \ + --pidfile /var/run/openvswitch/ovs-vswitchd.pid \ + --exec $ovs_vswitchd -- "$@" if running ovs-vswitchd; then echo "ovs-vswitchd." else echo " ERROR." fi - ;; + ;; stop) - echo -n "Stopping ovs-vswitchd: " - start-stop-daemon --stop --quiet --oknodo \ - --pidfile /var/run/ovs-vswitchd.pid \ + echo -n "Stopping ovs-vswitchd: " + start-stop-daemon --stop --quiet --oknodo \ + --pidfile /var/run/openvswitch/ovs-vswitchd.pid \ --exec $ovs_vswitchd - echo "ovs-vswitchd." + echo "ovs-vswitchd." - echo -n "Stopping ovsdb-server: " - start-stop-daemon --stop --quiet --oknodo \ - --pidfile /var/run/ovsdb-server.pid \ + echo -n "Stopping ovsdb-server: " + start-stop-daemon --stop --quiet --oknodo \ + --pidfile /var/run/openvswitch/ovsdb-server.pid \ --exec $ovsdb_server - echo "ovsdb-server." - ;; + echo "ovsdb-server." + ;; force-stop) - echo -n "Forcefully stopping ovs-vswitchd: " + echo -n "Forcefully stopping ovs-vswitchd: " force_stop ovs-vswitchd if ! running ovs-vswitchd; then echo "ovs-vswitchd." @@ -256,28 +293,28 @@ case "$1" in echo " ERROR." fi - echo -n "Forcefully stopping ovsdb-server: " + echo -n "Forcefully stopping ovsdb-server: " force_stop ovsdb-server if ! running ovsdb-server; then echo "ovsdb-server." else echo " ERROR." fi - ;; + ;; unload) - unload_modules - ;; + unload_modules + ;; reload) ;; force-reload) # Nothing to do, since ovs-vswitchd automatically reloads # whenever its configuration changes, and ovsdb-server doesn't # have anything to reload. - ;; + ;; restart) $0 stop || true $0 start - ;; + ;; status) for daemon in ovs-vswitchd ovsdb-server; do echo -n "$daemon is " @@ -290,10 +327,10 @@ case "$1" in done ;; *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|restart|force-reload|status|force-stop|unload}" >&2 - exit 1 - ;; + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload|status|force-stop|unload}" >&2 + exit 1 + ;; esac exit 0