X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=usttrace;h=fe8a5cd8f8c47f80a53a72164c1ac8852d20a1a3;hb=b924c127ff931e20e6de9c88aafad0829c97de29;hp=689cdded2f66b3289f661e2f9ed003a5a9038ac9;hpb=cd81471175c92d96c593c6fe7b7a37cd491d9e78;p=ust.git diff --git a/usttrace b/usttrace index 689cdde..fe8a5cd 100755 --- a/usttrace +++ b/usttrace @@ -77,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" + # Start daemon - $USTD -s "$SOCKPATH" -o "$OUTDIR" 2>&1 >"$OUTDIR/ustd.log" & - USTDPID="$!" + $USTD -d --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 @@ -137,6 +130,8 @@ then echo "Waiting for ustd to shutdown..." wait "$USTDPID" + + rm "$pidfilepath" fi echo "Trace was output in: " $OUTDIR