#!/bin/bash # # Startup script for etcd # # chkconfig: 2345 20 80 # description: Starts and stops etcd systemd service ### BEGIN INIT INFO # Provides: etcd # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start up the etcd service # Description: A highly-available key value store for shared configuration ### END INIT INFO DESC="ETCD highly-available key value database" SERVICE="etcd.service" PIDFILE="/var/run/etcd.pid" status() { if [ "`systemctl is-active etcd.service`" = "active" ]; then RETVAL=0 echo "$DESC is running" return else echo "$DESC is Not running" RETVAL=1 fi } start() { if [ -e $PIDFILE ]; then PIDDIR=/proc/$(cat $PIDFILE) if [ -d $PIDDIR ]; then echo "$DESC already running." return else echo "Removing stale PID file $PIDFILE" rm -f $PIDFILE fi fi echo "Starting $SERVICE..." systemctl start $SERVICE if [ $? -eq 0 ]; then echo "Started $SERVICE successfully" RETVAL=0 else echo "$SERVICE failed!" RETVAL=1 fi } stop() { echo -n "Stopping $SERVICE..." systemctl stop $SERVICE if [ $? -eq 0 ]; then echo "$SERVICE stopped." else echo "failed to stop $SERVICE!" fi if [ -e $PIDFILE ]; then echo "Removing stale PID file $PIDFILE" rm -f $PIDFILE fi } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop start ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac exit $RETVAL