X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-lib.in;h=48d0c36c87513cb7018d7d9ac3b079c9dfc7b62e;hb=f71db6b17852d7e0d2ade9f60b7aec63cd584a82;hp=893e8d1ef37a44dde592203cd41f76b02aced29b;hpb=f973f2af2fd4452c8e182caf6a4346cf2a2a394e;p=sliver-openvswitch.git diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in index 893e8d1ef..48d0c36c8 100644 --- a/utilities/ovs-lib.in +++ b/utilities/ovs-lib.in @@ -22,16 +22,56 @@ # All of these should be substituted by the Makefile at build time. logdir=${OVS_LOGDIR-'@LOGDIR@'} # /var/log/openvswitch rundir=${OVS_RUNDIR-'@RUNDIR@'} # /var/run/openvswitch -dbdir=${OVS_DBDIR-'@DBDIR@'} # /etc/openvswitch - # or /var/lib/openvswitch sysconfdir=${OVS_SYSCONFDIR-'@sysconfdir@'} # /etc etcdir=$sysconfdir/openvswitch # /etc/openvswitch datadir=${OVS_PKGDATADIR-'@pkgdatadir@'} # /usr/share/openvswitch bindir=${OVS_BINDIR-'@bindir@'} # /usr/bin sbindir=${OVS_SBINDIR-'@sbindir@'} # /usr/sbin +# /etc/openvswitch or /var/lib/openvswitch +if test X"$OVS_DBDIR" != X; then + dbdir=$OVS_DBDIR +elif test X"$OVS_SYSCONFDIR" != X; then + dbdir=$OVS_SYSCONFDIR/openvswitch +else + dbdir='@DBDIR@' +fi + +ovs_ctl_log () { + echo "$@" >> "${logdir}/ovs-ctl.log" +} + +ovs_ctl () { + case "$@" in + *"=strace"*) + # In case of running the daemon with strace, piping the o/p causes + # the script to block (strace probably does not close the inherited + # pipe). So, do not log the o/p to ovs-ctl.log. + "${datadir}/scripts/ovs-ctl" "$@" + ;; + "status") + # In case of the command 'status', we should return the exit status + # of ovs-ctl. It is also useful to document the o/p in ovs-ctl.log. + display=`"${datadir}/scripts/ovs-ctl" "$@" 2>&1` + rc=$? + if test -w "${logdir}/ovs-ctl.log"; then + echo "${display}" | tee -a "${logdir}/ovs-ctl.log" + else + echo "${display}" + fi + return ${rc} + ;; + *) + echo "`date -u`:$@" >> "${logdir}/ovs-ctl.log" + "${datadir}/scripts/ovs-ctl" "$@" 2>&1 | tee -a "${logdir}/ovs-ctl.log" + ;; + esac +} + VERSION='@VERSION@' +DAEMON_CWD=/ + LC_ALL=C; export LC_ALL ## ------------- ## @@ -131,6 +171,9 @@ start_daemon () { log_failure_msg "strace not installed, running $daemon without it" fi ;; + glibc) + set env MALLOC_CHECK_=2 MALLOC_PERTURB_=165 "$@" + ;; '') ;; *) @@ -152,11 +195,13 @@ start_daemon () { fi } -DAEMON_CWD=/ stop_daemon () { if test -e "$rundir/$1.pid"; then if pid=`cat "$rundir/$1.pid"`; then - for action in TERM .1 .25 .65 1 1 1 1 KILL 1 1 1 1 FAIL; do + for action in TERM .1 .25 .65 1 1 1 1 KILL 1 1 1 2 10 15 30 FAIL; do + if pid_exists "$pid" >/dev/null 2>&1; then :; else + return 0 + fi case $action in TERM) action "Killing $1 ($pid)" kill $pid @@ -169,11 +214,7 @@ stop_daemon () { return 1 ;; *) - if pid_exists $pid >/dev/null 2>&1; then - sleep $action - else - return 0 - fi + sleep $action ;; esac done