home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2 / Openstep-4.2-Intel-User.iso / usr / etc / ndc < prev    next >
Text File  |  1997-03-28  |  1KB  |  73 lines

  1. #!/bin/sh
  2.  
  3. USAGE='echo \
  4.     "usage: $0 \
  5.  (status|dumpdb|reload|stats|trace|notrace|querylog|start|stop|restart) \
  6.      ... \
  7.     "; exit 1'
  8.  
  9. PATH=/usr/etc:/bin:/usr/bin:/usr/ucb:$PATH
  10. PIDFILE=/etc/named.pid
  11.  
  12. [ -f $PIDFILE ] || {
  13.     echo "$0: $PIDFILE does not exist"
  14.     exit 1
  15. }
  16. PID=`cat $PIDFILE`
  17. PS=`ps $PID | tail -1 | grep $PID`
  18. RUNNING=1
  19. [ `echo $PS | wc -w` -ne 0 ] || {
  20.     PS="named (pid $PID?) not running"
  21.     RUNNING=0
  22. }
  23.  
  24. for ARG
  25. do
  26.     case $ARG in
  27.     start|stop|restart)
  28.         ;;
  29.     *)
  30.         [ $RUNNING -eq 0 ] && {
  31.             echo $PS
  32.             exit 1
  33.         }
  34.     esac
  35.  
  36.     case $ARG in
  37.     status)    echo "$PS";;
  38.     dumpdb)    kill -INT $PID && echo Dumping Database;;
  39.     reload)    kill -HUP $PID && echo Reloading Database;;
  40.     stats)    kill -IOT $PID && echo Dumping Statistics;;
  41.     trace)    kill -USR1 $PID && echo Trace Level Incremented;;
  42.     notrace) kill -USR2 $PID && echo Tracing Cleared;;
  43.     querylog|qrylog) kill -WINCH $PID && echo Query Logging Toggled;;
  44.     start)
  45.         [ $RUNNING -eq 1 ] && {
  46.             echo "$0: start: named (pid $PID) already running"
  47.             continue
  48.         }
  49.         named && echo Name Server Started
  50.         ;;
  51.     stop)
  52.         [ $RUNNING -eq 0 ] && {
  53.             echo "$0: stop: named not running"
  54.             continue
  55.         }
  56.         kill $PID && {
  57.             sleep 5
  58.             echo Name Server Stopped
  59.         }
  60.         ;;
  61.     restart)
  62.         [ $RUNNING -eq 1 ] && {
  63.             kill $PID && sleep 5
  64.         }
  65.         named && echo Name Server Restarted
  66.         ;;
  67.     *)    eval "$USAGE";;
  68.     esac
  69. done
  70. test -z "$ARG" && eval "$USAGE"
  71.  
  72. exit 0
  73.