File prometheus-node_exporter.initd of Package golang-github-prometheus-node_exporter

#!/bin/bash
# prometheus-node_exporter  Prometheus exporter for machine metrics
#
# Author:       Joao Cavalheiro <jcavalheiro@suse.com>
#
# chkconfig: 2345 20 80 Read
#
# description: Prometheus exporter for hardware and OS metrics
# processname: node_exporter

### BEGIN INIT INFO
# Provides: node_exporter
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Prometheus exporter for machine metrics
# Description: Prometheus exporter for hardware and OS metrics exposed by \
#              *NIX kernels, written in Go with pluggable metric collectors.
### END INIT INFO

SERVICE_NAME="prometheus-node_exporter"
PROCESS_NAME="node_exporter"
BINARY="/usr/bin/node_exporter"
USER="prometheus"
LOGFILE=/var/log/prometheus/$SERVICE_NAME.log
LOCKFILE=/var/lock/subsys/$SERVICE_NAME

ARGS=""
[ -e /etc/sysconfig/$SERVICE_NAME ] && . /etc/sysconfig/$SERVICE_NAME

if [ -f /etc/redhat-release ]; then
  . /etc/rc.d/init.d/functions

  start() {
    mkdir -p `dirname $LOGFILE` || true
    chown -R $USER: `dirname $LOGFILE`
    echo -n $"Starting $SERVICE_NAME: "
    daemon --user $USER --pidfile="$LOCKFILE" "$BINARY $ARGS &>$LOGFILE &"
    retval=$?
    echo
    [ $retval -eq 0 ] && echo $(pidofproc $PROCESS_NAME) >$LOCKFILE
  }

  stop() {
    echo -n $"Stopping $PROCESS_NAME: "
    killproc $PROCESS_NAME
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $LOCKFILE
  }

  status_p() {
    status $PROCESS_NAME
  }

elif [ -f /etc/SuSE-release ] ; then
  . /etc/rc.status

  start() {
    mkdir -p `dirname $LOGFILE` || true
    chown -R $USER: `dirname $LOGFILE`
    echo -n $"Starting $SERVICE_NAME: "
    startproc -u $USER -p $LOCKFILE -l $LOGFILE $BINARY $ARGS
    [ $? -eq 0 ] && echo $(pidofproc $PROCESS_NAME) >$LOCKFILE
    rc_status -v
  }

  stop() {
    echo -n $"Stopping $PROCESS_NAME: "
    killproc -p $LOCKFILE -TERM $PROCESS_NAME
    rc_status -v
    rm -f $LOCKFILE
  }

  status_p() {
    echo -n $"Checking for service $PROCESS_NAME: "
    checkproc -k -p $LOCKFILE $PROCESS_NAME
    if [ $? -eq 7 ]; then
      rc_failed 3
    fi;
    rc_status -v
  }

fi

restart() {
    stop
    start
}

reload() {
    restart
}

force_reload() {
    restart
}

status_q() {
    status_p >/dev/null 2>&1
}

case "$1" in
    start)
        status_q && exit 0
        $1
        ;;
    stop)
        status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        status_p
        ;;
    condrestart|try-restart)
        status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $?
openSUSE Build Service is sponsored by