[ovs-dev] [PATCH] ovs-lib: Support old versions of strace.
Ethan Jackson
ethan at nicira.com
Thu Jul 5 23:53:31 UTC 2012
The ovs-lib strace wrapper requires the -D (run tracer process as a
detached grandchild, not as parent) option which does not exist in
older versions. This patch falls back to attaching to the running
process when the -D option does not exists.
Signed-off-by: Ethan Jackson <ethan at nicira.com>
---
Here's another version. I've tested it on xenserver and debian.
---
utilities/ovs-lib.in | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/utilities/ovs-lib.in b/utilities/ovs-lib.in
index 04ab85a..3905a84 100644
--- a/utilities/ovs-lib.in
+++ b/utilities/ovs-lib.in
@@ -91,6 +91,7 @@ start_daemon () {
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"
@@ -118,7 +119,12 @@ start_daemon () {
;;
strace)
if (strace -V) > /dev/null 2>&1; then
- set strace -tt -T -s 256 -D -ff -o "$logdir/$daemon.strace.log" "$@"
+ 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
@@ -136,6 +142,12 @@ start_daemon () {
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=/
--
1.7.11.1
More information about the dev
mailing list