X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=usttrace;h=4f6f1f26bf9241d67f8c0f8647e9be05ad03887c;hb=87d40fcfac1d133efc27f9bd32a7509f586f358a;hp=a60440c8e0039e4feee4ae0e9f3629cb3020372e;hpb=31607b38d9c0df726f9f100483f2a9d32ac4ceb9;p=ust.git diff --git a/usttrace b/usttrace index a60440c..4f6f1f2 100755 --- a/usttrace +++ b/usttrace @@ -7,6 +7,22 @@ function error() { echo "$0: error: $1" 2>/dev/stderr } +function sighandler() { + echo "Caught Ctrl-C" + if [ -z "$USTDPID" ]; then + USTDPID="$(<$pidfilepath)" + fi + # Tell the daemon to die + kill -SIGTERM "$USTDPID" + + echo "Waiting for ustd to shutdown..." + wait "$USTDPID" + + rm "$pidfilepath" + + exit 0; +} + USTTRACE_DIR="$(dirname $0)" if [ -x "${USTTRACE_DIR}/ustd/ustd" ] ; then # Use the not installed libraries instead @@ -84,6 +100,7 @@ USTDSOCKPATH="/tmp/ustd-sock-$$" if [ "$arg_syswide_daemon" != "1" ]; then pidfilepath="/tmp/usttrace-$USER-$(date +%Y%m%d%H%M%S%N)-ustd-pid" + trap "sighandler $pidfilepath" SIGINT mkfifo -m 0600 "$pidfilepath" # Start daemon $USTD --pidfile "$pidfilepath" -s "$USTDSOCKPATH" -o "$OUTDIR" >"$OUTDIR/ustd.log" 2>&1 &