132 lines
2.3 KiB
Bash
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
|