Last active
January 18, 2019 08:58
-
-
Save unixunion/01eccddfa7a3f42a903f05818e987280 to your computer and use it in GitHub Desktop.
haproxy_exporter init script for systemd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: haproxy | |
# Required-Start: $local_fs $network $remote_fs $syslog $named $haproxy | |
# Required-Stop: $local_fs $remote_fs $syslog $named | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: fast and reliable load balancing reverse proxy | |
# Description: This file should be used to start and stop haproxy. | |
### END INIT INFO | |
# Author: Arnaud Cornet <[email protected]> | |
PATH=/sbin:/usr/sbin:/bin:/usr/bin | |
BASENAME=haproxy_exporter | |
PIDFILE=/var/run/${BASENAME}.pid | |
HAPROXY=/usr/bin/haproxy_exporter | |
EXTRAOPTS=--haproxy.scrape-uri="http://localhost:9000/haproxy_stats;csv" | |
test -x $HAPROXY || exit 0 | |
[ -f /etc/default/rcS ] && . /etc/default/rcS | |
. /lib/lsb/init-functions | |
haproxy_start() | |
{ | |
start-stop-daemon -b --quiet --oknodo --start -m --pidfile "$PIDFILE" \ | |
--exec $HAPROXY -- $EXTRAOPTS || return 2 | |
return 0 | |
} | |
haproxy_stop() | |
{ | |
if [ ! -f $PIDFILE ] ; then | |
# This is a success according to LSB | |
return 0 | |
fi | |
ret=0 | |
tmppid="$(mktemp)" | |
# HAProxy's pidfile may contain multiple PIDs, if nbproc > 1, so loop | |
# over each PID. Note that start-stop-daemon has a --pid option, but it | |
# was introduced in dpkg 1.17.6, post wheezy, so we use a temporary | |
# pidfile instead to ease backports. | |
for pid in $(cat $PIDFILE); do | |
echo "$pid" > "$tmppid" | |
start-stop-daemon --quiet --oknodo --stop \ | |
--retry 5 --pidfile "$tmppid" --exec $HAPROXY || ret=$? | |
done | |
rm -f "$tmppid" | |
[ $ret -eq 0 ] && rm -f $PIDFILE | |
return $ret | |
} | |
case "$1" in | |
start) | |
log_daemon_msg "Starting haproxy" "${BASENAME}" | |
haproxy_start | |
ret=$? | |
case "$ret" in | |
0) | |
log_end_msg 0 | |
;; | |
1) | |
log_end_msg 1 | |
echo "pid file '$PIDFILE' found, ${BASENAME} not started." | |
;; | |
2) | |
log_end_msg 1 | |
;; | |
esac | |
exit $ret | |
;; | |
stop) | |
log_daemon_msg "Stopping haproxy" "${BASENAME}" | |
haproxy_stop | |
ret=$? | |
case "$ret" in | |
0|1) | |
log_end_msg 0 | |
;; | |
2) | |
log_end_msg 1 | |
;; | |
esac | |
exit $ret | |
;; | |
*) | |
echo "Usage: /etc/init.d/${BASENAME} {start|stop|reload|restart|status}" | |
exit 2 | |
;; | |
esac | |
: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment