summaryrefslogtreecommitdiffstats
path: root/stap-start-server
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-10-26 15:20:06 -0400
committerDave Brolley <brolley@redhat.com>2009-10-26 15:20:06 -0400
commit7901b115cfa71950649621818402f625fdb83a53 (patch)
tree097c411fc83a66f90127b688b8cf57a9b910dea5 /stap-start-server
parent09070e8a586fa1d7592f9b35c9413c6cfdc8a477 (diff)
downloadsystemtap-steved-7901b115cfa71950649621818402f625fdb83a53.tar.gz
systemtap-steved-7901b115cfa71950649621818402f625fdb83a53.tar.xz
systemtap-steved-7901b115cfa71950649621818402f625fdb83a53.zip
stap-server initscript fully functional.
Diffstat (limited to 'stap-start-server')
-rwxr-xr-xstap-start-server34
1 files changed, 30 insertions, 4 deletions
diff --git a/stap-start-server b/stap-start-server
index ac31d3bd..e43a4cdf 100755
--- a/stap-start-server
+++ b/stap-start-server
@@ -17,27 +17,53 @@
startup_timeout=20
# start the server
-${stap_exec_prefix}stap-serverd "$@" </dev/null >/dev/null 2>&1 &
+${stap_exec_prefix}stap-serverd "$@" </dev/null &
server_pid=$!
# Make sure the server is started
for ((attempt=0; $attempt < $startup_timeout; ++attempt))
do
+ server_started=0
+ avahi_advertising=0
+ server_listening=0
+
# Has the server started?
- if ! (ps -e | grep $server_pid) >/dev/null 2>&1; then
- sleep 1
- continue
+ if ! (ps -e | grep stap-serverd | grep $server_pid) >/dev/null 2>&1; then
+ sleep 1
+ continue
fi
+ server_started=1
# Is avahi advertizing the server?
if ! (ps -fe | grep avahi-publish-service | grep $server_pid) > /dev/null 2>&1; then
sleep 1
continue
fi
+ avahi_advertising=1
+
+ # Is the server listening?
+ if ! (ps -fe | grep stap-server-connect | grep $server_pid) > /dev/null 2>&1; then
+ sleep 1
+ continue
+ fi
+ server_listening=1
# The server is ready
echo $server_pid
exit 0
done
+echo -n "Unable to start a systemtap server: " >&2
+
+if test $server_started = 0; then
+ echo "${stap_exec_prefix}stap-serverd did not start" >&2
+elif test $avahi_advertising = 0; then
+ echo "avahi is not advertising the server" >&2
+elif test $server_listening = 0; then
+ echo "The server could not open a connection to listen on" >&2
+fi
+
+# If the server partially started, then kill it.
+test $server_started = 1 && ${stap_exec_prefix}stap-stop-server $server_pid
+
exit 1 # server did not start