Annotation of embedaddon/strongswan/testing/hosts/default/etc/init.d/charon-tkm, revision 1.1
1.1 ! misho 1: #! /bin/sh
! 2: ### BEGIN INIT INFO
! 3: # Provides: charon-tkm
! 4: # Required-Start: $remote_fs $syslog
! 5: # Required-Stop: $remote_fs $syslog
! 6: # Default-Start: 2 3 4 5
! 7: # Default-Stop: 0 1 6
! 8: # Short-Description: strongSwan charon-tkm IKE daemon
! 9: # Description: with swanctl the strongSwan charon-tkm daemon must be
! 10: # running in the background
! 11: ### END INIT INFO
! 12:
! 13: # Author: Andreas Steffen <andreas.steffen@strongswan.org>
! 14: #
! 15: # Do NOT "set -e"
! 16:
! 17: # PATH should only include /usr/* if it runs after the mountnfs.sh script
! 18: PATH=/sbin:/usr/sbin:/bin:/usr/bin
! 19: DESC="strongSwan charon-tkm IKE daemon"
! 20: NAME=charon-tkm
! 21: DAEMON=/usr/local/libexec/ipsec/$NAME
! 22: DAEMON_ARGS=""
! 23: PIDFILE=/var/run/$NAME.pid
! 24: SCRIPTNAME=/etc/init.d/charon-tkm
! 25:
! 26: # Exit if the package is not installed
! 27: [ -x "$DAEMON" ] || exit 0
! 28:
! 29: # Read configuration variable file if it is present
! 30: [ -r /etc/default/$NAME ] && . /etc/default/$NAME
! 31:
! 32: # Load the VERBOSE setting and other rcS variables
! 33: . /lib/init/vars.sh
! 34:
! 35: # Define LSB log_* functions.
! 36: # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
! 37: # and status_of_proc is working.
! 38: . /lib/lsb/init-functions
! 39:
! 40: #
! 41: # Function that starts the daemon/service
! 42: #
! 43: do_start()
! 44: {
! 45: # Return
! 46: # 0 if daemon has been started
! 47: # 1 if daemon was already running
! 48: # 2 if daemon could not be started
! 49: start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
! 50: || return 1
! 51: start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- \
! 52: $DAEMON_ARGS \
! 53: || return 2
! 54: # Add code here, if necessary, that waits for the process to be ready
! 55: # to handle requests from services started subsequently which depend
! 56: # on this one. As a last resort, sleep for some time.
! 57: }
! 58:
! 59: #
! 60: # Function that stops the daemon/service
! 61: #
! 62: do_stop()
! 63: {
! 64: # Return
! 65: # 0 if daemon has been stopped
! 66: # 1 if daemon was already stopped
! 67: # 2 if daemon could not be stopped
! 68: # other if a failure occurred
! 69: start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
! 70: RETVAL="$?"
! 71: [ "$RETVAL" = 2 ] && return 2
! 72: # Wait for children to finish too if this is a daemon that forks
! 73: # and if the daemon is only ever run from this initscript.
! 74: # If the above conditions are not satisfied then add some other code
! 75: # that waits for the process to drop all resources that could be
! 76: # needed by services started subsequently. A last resort is to
! 77: # sleep for some time.
! 78: start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
! 79: [ "$?" = 2 ] && return 2
! 80: # Many daemons don't delete their pidfiles when they exit.
! 81: rm -f $PIDFILE
! 82: return "$RETVAL"
! 83: }
! 84:
! 85: #
! 86: # Function that sends a SIGHUP to the daemon/service
! 87: #
! 88: do_reload() {
! 89: #
! 90: # If the daemon can reload its configuration without
! 91: # restarting (for example, when it is sent a SIGHUP),
! 92: # then implement that here.
! 93: #
! 94: start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
! 95: return 0
! 96: }
! 97:
! 98: case "$1" in
! 99: start)
! 100: [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
! 101: do_start
! 102: case "$?" in
! 103: 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
! 104: 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
! 105: esac
! 106: ;;
! 107: stop)
! 108: [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
! 109: do_stop
! 110: case "$?" in
! 111: 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
! 112: 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
! 113: esac
! 114: ;;
! 115: status)
! 116: status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
! 117: ;;
! 118: #reload|force-reload)
! 119: #
! 120: # If do_reload() is not implemented then leave this commented out
! 121: # and leave 'force-reload' as an alias for 'restart'.
! 122: #
! 123: #log_daemon_msg "Reloading $DESC" "$NAME"
! 124: #do_reload
! 125: #log_end_msg $?
! 126: #;;
! 127: restart|force-reload)
! 128: #
! 129: # If the "reload" option is implemented then remove the
! 130: # 'force-reload' alias
! 131: #
! 132: log_daemon_msg "Restarting $DESC" "$NAME"
! 133: do_stop
! 134: case "$?" in
! 135: 0|1)
! 136: do_start
! 137: case "$?" in
! 138: 0) log_end_msg 0 ;;
! 139: 1) log_end_msg 1 ;; # Old process is still running
! 140: *) log_end_msg 1 ;; # Failed to start
! 141: esac
! 142: ;;
! 143: *)
! 144: # Failed to stop
! 145: log_end_msg 1
! 146: ;;
! 147: esac
! 148: ;;
! 149: *)
! 150: #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
! 151: echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
! 152: exit 3
! 153: ;;
! 154: esac
! 155:
! 156: :
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>