Skip to content

Instantly share code, notes, and snippets.

@mashurex
Last active December 20, 2015 02:19
Show Gist options
  • Save mashurex/6055195 to your computer and use it in GitHub Desktop.
Save mashurex/6055195 to your computer and use it in GitHub Desktop.
New Relic MySQL Agent Plugin init.d script
#!/bin/bash
#
# /etc/init.d/newrelic_mysql_agent -- Startup/shutdown script for New Relic MySQL Plugin
#
# Written by Mustafa Ashurex <mustafa@ashurexconsulting.com>.
#
#
### BEGIN INIT INFO
# Provides: newrelic_mysql_plugin
# Required-Start: $Local_fs $remote_fs $network $sysLog
# Required-Stop: $Local_fs $remote_fs $network $sysLog
# Should-Start: $named
# Should-Stop $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Start and stop the New Relic MySQL Plugin
# Short-Description: Start and stop New Relic MySQL Plugin
### END INIT INFO
## Source function Library
. /etc/rc.d/init.d/functions
NR_MYSQL_PLUGIN_PID="/var/run/newrelic_mysql_plugin.pid"
NR_MYSQL_PLUGIN_VERSION="1.0.4"
export NR_MYSQL_PLUGIN_PID
export NR_MYSQL_PLUGIN_VERSION
if [[ -z "$NR_MYSQL_PLUGIN_HOME" ]]
then
NR_MYSQL_PLUGIN_HOME="/etc/newrelic/newrelic_mysql_plugin-$NR_MYSQL_PLUGIN_VERSION"
export NR_MYSQL_PLUGIN_HOME
fi
if [[ -z "$NR_MYSQL_PLUGIN_HOME" ]]
then
echo NR_MYSQL_PLUGIN_HOME must be set!
exit 5
fi
plugin_pid() {
# This gets the pid from ps
echo `ps aux | grep newrelic_mysql_plugin | grep -v grep | awk '{ print $2 }'`
}
plugin_start() {
pid=$(plugin_pid)
if [ -n "$pid" ]; then
echo "Plugin is already running (pid: $pid)."
else
cd $NR_MYSQL_PLUGIN_HOME
echo "Starting Plugin..."
echo -n $pid > $NR_MYSQL_PLUGIN_PID
`java -jar $NR_MYSQL_PLUGIN_HOME/newrelic_mysql_plugin-$NR_MYSQL_PLUGIN_VERSION.jar` > /dev/null 2>&1 &
echo "Plugin started."
fi
return 0
}
plugin_stop() {
pid=$(plugin_pid)
if [ -n "$pid" ]
then
echo "Stopping Plugin..."
kill -9 $pid
rm $NR_MYSQL_PLUGIN_PID
echo "Plugin stopped."
else
echo "Plugin is not running."
fi
return 0
}
plugin_status() {
pid=$(plugin_pid)
if [ -n "$pid" ]
then
echo "Plugin is running with pid: $pid."
else
echo "Plugin is not running."
fi
return 0
}
case $1 in
start)
plugin_start
;;
stop)
plugin_stop
;;
restart)
plugin_stop
plugin_start
;;
status)
plugin_status
;;
*)
echo "Missing required directive [start | stop | status]"
exit 1
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment