| Line |   | 
|---|
| 1 | # Typical Debian initscript, but as a library rather than copy-paste. | 
|---|
| 2 | # | 
|---|
| 3 | # Usage: | 
|---|
| 4 | #   NAME=short-name | 
|---|
| 5 | #   DESC="Textual description" | 
|---|
| 6 | #   SCRIPTNAME=/etc/init.d/$NAME  # default if omitted | 
|---|
| 7 | #   . /lib/init/std-init.sh | 
|---|
| 8 | #   do_start() { ... } | 
|---|
| 9 | #   do_stop() { ... } | 
|---|
| 10 | #   do_reload() { ... }  # optional | 
|---|
| 11 | #   std_init "$1" | 
|---|
| 12 |  | 
|---|
| 13 | . /lib/init/vars.sh | 
|---|
| 14 | . /lib/lsb/init-functions | 
|---|
| 15 |  | 
|---|
| 16 | [ -r /etc/default/"$NAME" ] && . /etc/default/"$NAME" | 
|---|
| 17 |  | 
|---|
| 18 | SCRIPTNAME="${SCRIPTNAME:-/etc/init.d/$NAME}" | 
|---|
| 19 |  | 
|---|
| 20 | have_reload() | 
|---|
| 21 | { | 
|---|
| 22 |   type do_reload >/dev/null 2>/dev/null | 
|---|
| 23 | } | 
|---|
| 24 |  | 
|---|
| 25 | usage_exit() | 
|---|
| 26 | { | 
|---|
| 27 |   if have_reload; then | 
|---|
| 28 |     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 | 
|---|
| 29 |   else | 
|---|
| 30 |     echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 | 
|---|
| 31 |   fi | 
|---|
| 32 |   exit 3 | 
|---|
| 33 | } | 
|---|
| 34 |  | 
|---|
| 35 | std_init() | 
|---|
| 36 | { | 
|---|
| 37 |   local cmd | 
|---|
| 38 |   case "$1" in | 
|---|
| 39 |     start|stop|restart) | 
|---|
| 40 |       cmd="$1" ;; | 
|---|
| 41 |     reload) | 
|---|
| 42 |       if have_reload; then cmd=reload; else usage_exit; fi ;; | 
|---|
| 43 |     force-reload) | 
|---|
| 44 |       if have_reload; then cmd=reload; else cmd=restart; fi ;; | 
|---|
| 45 |     *) | 
|---|
| 46 |       usage_exit ;; | 
|---|
| 47 |   esac | 
|---|
| 48 |      | 
|---|
| 49 |   case $cmd in | 
|---|
| 50 |     start) | 
|---|
| 51 |       [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" | 
|---|
| 52 |       do_start | 
|---|
| 53 |       case "$?" in | 
|---|
| 54 |         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | 
|---|
| 55 |         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | 
|---|
| 56 |       esac | 
|---|
| 57 |       ;; | 
|---|
| 58 |     stop) | 
|---|
| 59 |       [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" | 
|---|
| 60 |       do_stop | 
|---|
| 61 |       case "$?" in | 
|---|
| 62 |         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | 
|---|
| 63 |         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | 
|---|
| 64 |       esac | 
|---|
| 65 |       ;; | 
|---|
| 66 |     reload) | 
|---|
| 67 |       log_daemon_msg "Reloading $DESC" "$NAME" | 
|---|
| 68 |       do_reload | 
|---|
| 69 |       log_end_msg $? | 
|---|
| 70 |       ;; | 
|---|
| 71 |     restart) | 
|---|
| 72 |       log_daemon_msg "Restarting $DESC" "$NAME" | 
|---|
| 73 |       do_stop | 
|---|
| 74 |       case "$?" in | 
|---|
| 75 |         0|1) | 
|---|
| 76 |           do_start | 
|---|
| 77 |           case "$?" in | 
|---|
| 78 |             0) log_end_msg 0 ;; | 
|---|
| 79 |             1) log_end_msg 1 ;; # Old process is still running | 
|---|
| 80 |             *) log_end_msg 1 ;; # Failed to start | 
|---|
| 81 |           esac | 
|---|
| 82 |           ;; | 
|---|
| 83 |         *) | 
|---|
| 84 |           # Failed to stop | 
|---|
| 85 |           log_end_msg 1 | 
|---|
| 86 |           ;; | 
|---|
| 87 |       esac | 
|---|
| 88 |       ;; | 
|---|
| 89 |   esac | 
|---|
| 90 |  | 
|---|
| 91 |   : | 
|---|
| 92 | } | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.