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