X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=usttrace;h=52c378dfbd12041636f1630e7b82d49ee51bcbb6;hb=5ab4c5cbc13fe373def19dbfcbf669a60b7c71a9;hp=cb9464086adb7e82efad62059f2dc14e06874eca;hpb=bce2937acead6988b0f0b84b2b339f1fd8d54122;p=ust.git diff --git a/usttrace b/usttrace index cb94640..52c378d 100755 --- a/usttrace +++ b/usttrace @@ -3,13 +3,14 @@ # usttrace by Pierre-Marc Fournier 2009 # Distributed under the GPLv2. -USTD="./ustd/ustd" -LIBINTERFORK_PATH="./libinterfork/.libs/libinterfork.so" -LIBMALLOCWRAP_PATH="./libmallocwrap/.libs/libmallocwrap.so" +USTTRACE_DIR="$(dirname $0)" +USTD="${USTTRACE_DIR}/ustd/ustd" +LIBINTERFORK_PATH="${USTTRACE_DIR}/libinterfork/.libs/libinterfork.so" +LIBMALLOCWRAP_PATH="${USTTRACE_DIR}/libmallocwrap/.libs/libmallocwrap.so" -STD_LDLIBRARY_UST="./libust/.libs:../liburcu" +STD_LDLIBRARY_UST="${USTTRACE_DIR}/libust/.libs" -BASE_TRACE_DIR="$HOME/.usttraces" +BASE_TRACE_DIR="${HOME}/.usttraces" function usage () { echo "usage: $0 OPTIONS COMMAND" 2>/dev/stderr @@ -44,6 +45,12 @@ while getopts ":hlLmfs" options; do done shift $(($OPTIND - 1)) +if [ ! -x "$USTD" ]; +then + error "specified path to ustd not executable ($USTD)" + exit 1 +fi + # Prepare vars CMD=$1 @@ -70,21 +77,14 @@ SOCKPATH="/tmp/ust-sock-$$" if [ "$arg_syswide_daemon" != "1" ]; then + pidfilepath="/tmp/usttrace-$USER-$(date +%Y%m%d%H%M%S%N)-ustd-pid" + mkfifo -m 0600 "$pidfilepath" # Start daemon - $USTD -s "$SOCKPATH" -o "$OUTDIR" 2>&1 >"$OUTDIR/ustd.log" & - USTDPID="$!" + $USTD --pidfile "$pidfilepath" -s "$SOCKPATH" -o "$OUTDIR" >"$OUTDIR/ustd.log" 2>&1 & + USTDPID="$(<$pidfilepath)" export UST_DAEMON_SOCKET="$SOCKPATH" fi -# Wait for the daemon to settle -# If we don't, the process may try to connect to its socket before -# it's ready. -# FIXME: is there a way to make sure this works every time? Yes, -# we could have a mode where ustd daemonizes itself. Therefore -# by the time the control returns to the console, it's ready. - -sleep 0.5 - # Establish the environment for the command export UST_TRACE=1 export UST_AUTOPROBE=1 @@ -129,7 +129,9 @@ then kill -SIGTERM "$USTDPID" echo "Waiting for ustd to shutdown..." - wait "$USTDPID" + wait "$(USTDPID)" + + rm "$pidfilepath" fi echo "Trace was output in: " $OUTDIR