Skip to content

Instantly share code, notes, and snippets.

@rbudiharso
Last active June 17, 2020 04:43
Show Gist options
  • Save rbudiharso/e986501f389a11c25ddeeab6b68f0bd5 to your computer and use it in GitHub Desktop.
Save rbudiharso/e986501f389a11c25ddeeab6b68f0bd5 to your computer and use it in GitHub Desktop.
#!/bin/bash
cat > /etc/init.d/node_exporter <<END
#!/bin/sh
### BEGIN INIT INFO
# Provides: node_exporter
# Required-Start: \$local_fs \$network \$named \$time \$syslog
# Required-Stop: \$local_fs \$network \$named \$time \$syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: node_exporter service on localhost
### END INIT INFO
SCRIPT=/usr/local/bin/node_exporter
RUNAS=root
PIDFILE=/var/run/node_exporter.pid
LOGFILE=/var/log/node_exporter.log
start() {
if [ -f "\$PIDFILE" ] && kill -0 \$(cat "\$PIDFILE"); then
echo 'Service already running' >&2
return 1
fi
echo 'Starting service…' >&2
local CMD="\$SCRIPT &> \"\$LOGFILE\" & echo \\\$! > \$PIDFILE"
su -c "\$CMD" \$RUNAS > "\$LOGFILE"
echo 'Service started' >&2
}
stop() {
if [ ! -f "\$PIDFILE" ] || ! kill -0 \$(cat "\$PIDFILE"); then
echo 'Service not running' >&2
return 1
fi
echo 'Stopping service…' >&2
kill -15 \$(cat "\$PIDFILE") && rm -f "\$PIDFILE"
echo 'Service stopped' >&2
}
case "\$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: \$0 {start|stop|restart}"
esac
END
chmod +x /etc/init.d/node_exporter
cd /tmp
echo "============= starting node_exporter setup ============"
curl -L -O https://github.com/prometheus/node_exporter/releases/download/v1.0.0/node_exporter-1.0.0.linux-amd64.tar.gz
tar xvzpf node_exporter-1.0.0.linux-amd64.tar.gz
mv -f node_exporter-1.0.0.linux-amd64/node_exporter /usr/local/bin/node_exporter
/etc/init.d/node_exporter restart
echo "============= done ===================================="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment