Skip to content

Instantly share code, notes, and snippets.

@wallentx
Created October 14, 2015 07:26
Show Gist options
  • Select an option

  • Save wallentx/b528393a1155d2b0d0b5 to your computer and use it in GitHub Desktop.

Select an option

Save wallentx/b528393a1155d2b0d0b5 to your computer and use it in GitHub Desktop.
node-exporter init script for Amazon AMI/RHEL to be used with systemv. Place in /etc/init.d/ and ensure that line 12 matches your path
#!/bin/bash
#
#
#
# Start on runlevels 3, 4 and 5. Start late, kill early.
# chkconfig: 345 95 05
#
#
#!/bin/bash
# absolute path to executable binary
progpath='/usr/sbin/node_exporter'
# arguments to script
opts=''
# binary program name
prog=$(basename $progpath)
# pid file
pidfile="/var/run/${prog}.pid"
# make sure full path to executable binary is found
! [ -x $progpath ] && echo "$progpath: executable not found" && exit 1
eval_cmd() {
local rc=$1
if [ $rc -eq 0 ]; then
echo '[ OK ]'
else
echo '[FAILED]'
fi
return $rc
}
start() {
# see if running
local pids=$(pgrep $prog)
if [ -n "$pids" ]; then
echo "$prog (pid $pids) is already running"
return 0
fi
printf "%-50s%s" "Starting $prog: " ''
$progpath $opts &
# save pid to file if you want
echo $! > $pidfile
# check again if running
pgrep $prog >/dev/null 2>&1
eval_cmd $?
}
stop() {
# see if running
local pids=$(pgrep $prog)
if [ -z "$pids" ]; then
echo "$prog not running"
return 0
fi
printf "%-50s%s" "Stopping $prog: " ''
rm -f $pidfile
kill -9 $pids
eval_cmd $?
}
status() {
# see if running
local pids=$(pgrep $prog)
if [ -n "$pids" ]; then
echo "$prog (pid $pids) is running"
else
echo "$prog is stopped"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $?
@robax
Copy link
Copy Markdown

robax commented Jun 15, 2018

Thank you for this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment