summaryrefslogtreecommitdiffstats
path: root/stap-start-server
diff options
context:
space:
mode:
Diffstat (limited to 'stap-start-server')
-rwxr-xr-xstap-start-server22
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