diff options
Diffstat (limited to 'stap-start-server')
-rwxr-xr-x | stap-start-server | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/stap-start-server b/stap-start-server index aa2850b5..c8ea8178 100755 --- a/stap-start-server +++ b/stap-start-server @@ -2,7 +2,7 @@ # Start a systemtap server # -# Copyright (C) 2008 Red Hat Inc. +# Copyright (C) 2008, 2009 Red Hat Inc. # # This file is part of systemtap, and is free software. You can # redistribute it and/or modify it under the terms of the GNU General @@ -12,15 +12,29 @@ # This script attempts to start a systemtap server and echoes the # process id, if successful. +# Where are we installed? +exec_prefix=`dirname $0` +exec_prefix=`cd $exec_prefix && pwd` +prefix=`dirname $exec_prefix` + # start the server -stap-serverd </dev/null >/dev/null 2>&1 & +$exec_prefix/stap-serverd "$@" </dev/null >/dev/null 2>&1 & server_pid=$! # Make sure the server is started for ((attempt=0; $attempt < 5; ++attempt)) do - (ps -a | grep $server_pid) >/dev/null 2>&1 && echo $server_pid && exit 0 - sleep 1 + if test $EUID = 0; then + if ! test -f $prefix/etc/systemtap/ssl/server/stap-server.cert; then + sleep 1 + continue; + fi + elif ! test -f $HOME/.systemtap/ssl/server/stap-server.cert; then + sleep 1 + continue + fi + (ps -a | grep $server_pid) >/dev/null 2>&1 && echo $server_pid && exit 0 + sleep 1 done exit 1 # server did not start |