Annotation of embedaddon/strongswan/testing/hosts/default/etc/init.d/charon, revision 1.1.1.1

1.1       misho       1: #! /bin/sh
                      2: ### BEGIN INIT INFO
                      3: # Provides:          charon 
                      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 IKE daemon 
                      9: # Description:       with swanctl the strongSwan charon 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 IKE daemon"
                     20: NAME=charon
                     21: DAEMON=/usr/local/libexec/ipsec/$NAME
                     22: DAEMON_ARGS=""
                     23: PIDFILE=/var/run/$NAME.pid
                     24: SCRIPTNAME=/etc/init.d/charon
                     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>