slackbuilds/network/node_exporter/config/rc.node_exporter

132 lines
2.3 KiB
Bash

#!/bin/sh
#
# Node Exporter startup script for Slackware Linux
#
BASE=node_exporter
SERVER=/usr/bin/${BASE}
# Default options.
if [ -f /etc/default/node_exporter ]; then
. /etc/default/node_exporter
fi
NODE_EXPORTER_USER=${NODE_EXPORTER_USER:=nobody}
NODE_EXPORTER_ARGS=${NODE_EXPORTER_ARGS:=""}
NODE_EXPORTER_LOG_FACILITY=${NODE_EXPORTER_LOG_FACILITY:=daemon.info}
NODE_EXPORTER_PID=/var/run/node_exporter/node_exporter.pid
# Check if server is present.
if [ ! -x ${SERVER} ]; then
echo "${SERVER} not present or not executable"
exit 1
fi
# Check if daemon is present.
if [ ! -x /usr/bin/daemon ]; then
echo "/usr/bin/daemon not present or not executable"
echo "> slackpkg install daemon"
exit 1
fi
wait_for_pid () {
try=0
while test $try -lt 5 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
node_exporter_start() {
if [ -f $NODE_EXPORTER_PID ]; then
echo "$NODE_EXPORTER_PID file exists, $BASE is probably running"
exit 0
else
echo -n "Starting ${BASE} ..."
daemon --user=$NODE_EXPORTER_USER \
--pidfile=$NODE_EXPORTER_PID \
--output=$NODE_EXPORTER_LOG_FACILITY -- \
$SERVER $NODE_EXPORTER_ARGS
wait_for_pid created $NODE_EXPORTER_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
fi
}
node_exporter_stop() {
echo -n "Stopping ${BASE} ..."
if [ -f $NODE_EXPORTER_PID ]; then
kill $(cat $NODE_EXPORTER_PID)
wait_for_pid removed $NODE_EXPORTER_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
else
echo "not running"
fi
}
node_exporter_restart() {
node_exporter_stop
node_exporter_start
}
node_exporter_status() {
if [ -f $NODE_EXPORTER_PID ]; then
echo "Status of ${BASE}: running"
else
echo "Status of ${BASE}: stopped"
fi
}
case "$1" in
'start')
node_exporter_start
;;
'stop')
node_exporter_stop
;;
'restart')
node_exporter_restart
;;
'status')
node_exporter_status
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac
exit 0