github.com/deemoprobe/k8s-first-commit@v0.0.0-20230430165612-a541f1982be3/src/saltbase/salt/apiserver/initd (about)

     1  #!/bin/bash
     2  #
     3  ### BEGIN INIT INFO
     4  # Provides:   apiserver
     5  # Required-Start:    $local_fs $network $syslog
     6  # Required-Stop:
     7  # Default-Start:     2 3 4 5
     8  # Default-Stop:      0 1 6
     9  # Short-Description: The Kubernetes API server
    10  # Description:
    11  #   The Kubernetes API server maintains docker state against a state file.
    12  ### END INIT INFO
    13  
    14  
    15  # PATH should only include /usr/* if it runs after the mountnfs.sh script
    16  PATH=/sbin:/usr/sbin:/bin:/usr/bin
    17  DESC="The Kubernetes API server"
    18  NAME=apiserver
    19  DAEMON=/usr/local/bin/apiserver
    20  DAEMON_ARGS=""
    21  DAEMON_LOG_FILE=/var/log/$NAME.log
    22  PIDFILE=/var/run/$NAME.pid
    23  SCRIPTNAME=/etc/init.d/$NAME
    24  DAEMON_USER=apiserver
    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  # Define LSB log_* functions.
    33  # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
    34  # and status_of_proc is working.
    35  . /lib/lsb/init-functions
    36  
    37  #
    38  # Function that starts the daemon/service
    39  #
    40  do_start()
    41  {
    42          # Return
    43          #   0 if daemon has been started
    44          #   1 if daemon was already running
    45          #   2 if daemon could not be started
    46          start-stop-daemon --start --quiet --background --no-close \
    47                  --make-pidfile --pidfile $PIDFILE \
    48                  --exec $DAEMON -c $DAEMON_USER --test > /dev/null \
    49                  || return 1
    50          start-stop-daemon --start --quiet --background --no-close \
    51                  --make-pidfile --pidfile $PIDFILE \
    52                  --exec $DAEMON -c $DAEMON_USER -- \
    53                  $DAEMON_ARGS >> $DAEMON_LOG_FILE 2>&1 \
    54                  || return 2
    55  }
    56  
    57  #
    58  # Function that stops the daemon/service
    59  #
    60  do_stop()
    61  {
    62          # Return
    63          #   0 if daemon has been stopped
    64          #   1 if daemon was already stopped
    65          #   2 if daemon could not be stopped
    66          #   other if a failure occurred
    67          start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    68          RETVAL="$?"
    69          [ "$RETVAL" = 2 ] && return 2
    70          # Many daemons don't delete their pidfiles when they exit.
    71          rm -f $PIDFILE
    72          return "$RETVAL"
    73  }
    74  
    75  
    76  case "$1" in
    77    start)
    78          log_daemon_msg "Starting $DESC" "$NAME"
    79          do_start
    80          case "$?" in
    81                  0|1) log_end_msg 0 || exit 0 ;;
    82                  2) verblog_end_msg 1 || exit 1 ;;
    83          esac
    84          ;;
    85    stop)
    86          log_daemon_msg "Stopping $DESC" "$NAME"
    87          do_stop
    88          case "$?" in
    89                  0|1) log_end_msg 0 ;;
    90                  2) exit 1 ;;
    91          esac
    92          ;;
    93    status)
    94          status_of_proc -p $PIDFILE "$DAEMON" "$NAME" && exit 0 || exit $?
    95          ;;
    96  
    97    restart|force-reload)
    98          log_daemon_msg "Restarting $DESC" "$NAME"
    99          do_stop
   100          case "$?" in
   101            0|1)
   102                  do_start
   103                  case "$?" in
   104                          0) log_end_msg 0 ;;
   105                          1) log_end_msg 1 ;; # Old process is still running
   106                          *) log_end_msg 1 ;; # Failed to start
   107                  esac
   108                  ;;
   109            *)
   110                  # Failed to stop
   111                  log_end_msg 1
   112                  ;;
   113          esac
   114          ;;
   115    *)
   116          echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
   117          exit 3
   118          ;;
   119  esac