#!/bin/sh set -a ### BEGIN INIT INFO # Provides: etcd # Required-Start: $local_fs $network $syslog # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: etcd distributed k/v store # Description: # etcd is a distributed, consistent key-value store for shared configuration and service discovery ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="etcd k/v store" NAME=etcd DAEMON={{ bin_dir }}/etcd SCRIPTNAME=/etc/init.d/$NAME DAEMON_USER=etcd STOP_SCHEDULE="${STOP_SCHEDULE:-QUIT/5/TERM/5/KILL/5}" PID=/var/run/etcd.pid # Exit if the binary is not present [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -f /etc/etcd.env ] && . /etc/etcd.env # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions do_status() { status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $? } # Function that starts the daemon/service # do_start() { sleep {{ etcd_start_delay }} start-stop-daemon --background --start --quiet --make-pidfile --pidfile $PID --user $DAEMON_USER --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 } # # Function that stops the daemon/service # do_stop() { start-stop-daemon --stop --quiet --retry=$STOP_SCHEDULE --pidfile $PID --name $NAME RETVAL="$?" sleep 1 return "$RETVAL" } case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) log_end_msg 0 || exit 0 ;; 2) log_end_msg 1 || exit 1 ;; esac ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" if do_stop; then log_end_msg 0 else log_failure_msg "Can't stop etcd" log_end_msg 1 fi ;; status) if do_status; then log_end_msg 0 else log_failure_msg "etcd is not running" log_end_msg 1 fi ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" if do_stop; then if do_start; then log_end_msg 0 exit 0 else rc="$?" fi else rc="$?" fi log_failure_msg "Can't restart etcd" log_end_msg ${rc} ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 exit 3 ;; esac