X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utilities%2Fovs-lib.in;h=3905a846fd84d3884cf7ab6695e4c367de96bff3;hb=333be161abe789ff6628c0256143214126b69f02;hp=f53d4afdd02e55328853b1989fa8c5d60d2dbcef;hpb=d422c1189901d34125cd2d46552391c333d1f647;p=openvswitch diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in index f53d4afd..3905a846 100644 --- a/utilities/ovs-lib.in +++ b/utilities/ovs-lib.in @@ -1,7 +1,7 @@ # This is a shell function library sourced by some Open vSwitch scripts. # It is not intended to be invoked on its own. -# Copyright (C) 2009, 2010, 2011 Nicira Networks, Inc. +# Copyright (C) 2009, 2010, 2011, 2012 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -29,10 +29,6 @@ bindir=${OVS_BINDIR-'@bindir@'} # /usr/bin sbindir=${OVS_SBINDIR-'@sbindir@'} # /usr/sbin VERSION='@VERSION@' -case @BUILDNR@ in - [1-9]*) BUILDNR='+build@BUILDNR@' ;; - *) BUILDNR= ;; -esac LC_ALL=C; export LC_ALL @@ -92,8 +88,10 @@ pid_exists () { start_daemon () { priority=$1 - shift + wrapper=$2 + shift; shift daemon=$1 + strace="" # drop core files in a sensible place test -d "$DAEMON_CWD" || install -d -m 755 -o root -g root "$DAEMON_CWD" @@ -109,12 +107,47 @@ start_daemon () { set "$@" --pidfile="$rundir/$daemon.pid" set "$@" --detach --monitor + # wrapper + case $wrapper in + valgrind) + if (valgrind --version) > /dev/null 2>&1; then + set valgrind -q --leak-check=full --time-stamp=yes \ + --log-file="$logdir/$daemon.valgrind.log.%p" "$@" + else + log_failure_msg "valgrind not installed, running $daemon without it" + fi + ;; + strace) + if (strace -V) > /dev/null 2>&1; then + strace="strace -tt -T -s 256 -ff" + if (strace -DV) > /dev/null 2>&1; then + # Has the -D option. + set $strace -D -o "$logdir/$daemon.strace.log" "$@" + strace="" + fi + else + log_failure_msg "strace not installed, running $daemon without it" + fi + ;; + '') + ;; + *) + log_failure_msg "unknown wrapper $wrapper, running $daemon without it" + ;; + esac + # priority if test X"$priority" != X; then set nice -n "$priority" "$@" fi action "Starting $daemon" "$@" + + if test X"$strace" != X; then + # Strace doesn't have the -D option so we attach after the fact. + setsid $strace -o "$logdir/$daemon.strace.log" \ + -p `cat $rundir/$daemon.pid` > /dev/null 2>&1 & + fi } DAEMON_CWD=/