#!/bin/bash # # /etc/rc.d/init.d/consul # # Daemonize the consul agent. # # chkconfig: 2345 95 95 # description: Service discovery and configuration made easy. \ # Distributed, highly available, and datacenter-aware. # processname: consul # pidfile: /var/run/consul/pidfile # Source function library. # shellcheck disable=SC1091 . /etc/init.d/functions NAME=consul CONSUL=/usr/local/bin/consul CONFIG=/etc/$NAME/conf.d PID_FILE=/var/run/$NAME/pidfile LOG_FILE=/var/log/$NAME # shellcheck disable=SC1090 [ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME export GOMAXPROCS=${GOMAXPROCS:-2} mkdir -p /var/run/$NAME chown consul:consul /var/run/$NAME chmod 2770 /var/run/$NAME start() { printf "Starting %s" "$NAME: " daemon --user=consul \ --pidfile="$PID_FILE" \ "$CONSUL" agent -pid-file="$PID_FILE" -config-dir "$CONFIG" >> "$LOG_FILE" & retcode=$? touch /var/lock/subsys/$NAME return $retcode } stop() { printf "Shutting down %s" "$NAME: " killproc -p "$PID_FILE" $NAME retcode=$? rm -f /var/lock/subsys/$NAME return $retcode } case "$1" in start) if status -p "$PID_FILE" $NAME >/dev/null; then echo "$NAME already running" else start fi ;; stop) if status -p "$PID_FILE" $NAME >/dev/null; then stop else echo "$NAME not running" fi ;; info) "$CONSUL" info ;; status) status -p "$PID_FILE" $NAME exit $? ;; restart) if status -p "$PID_FILE" $NAME >/dev/null; then stop fi start ;; reload) if status -p "$PID_FILE" $NAME >/dev/null; then kill -HUP "$(cat "$PID_FILE")" else echo "$NAME not running" fi ;; condrestart) if [ -f /var/lock/subsys/$NAME ]; then if status -p "$PID_FILE" $NAME >/dev/null; then stop fi start fi ;; *) echo "Usage: $NAME {start|stop|status|reload|restart|condrestart|info}" exit 1 ;; esac exit $?