diff options
author | Dave Brolley <brolley@redhat.com> | 2009-10-26 15:20:06 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-10-26 15:20:06 -0400 |
commit | 7901b115cfa71950649621818402f625fdb83a53 (patch) | |
tree | 097c411fc83a66f90127b688b8cf57a9b910dea5 /stap-start-server | |
parent | 09070e8a586fa1d7592f9b35c9413c6cfdc8a477 (diff) | |
download | systemtap-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-x | stap-start-server | 34 |
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 |