#!/bin/bash # # chkconfig: 2345 12 88 # description: pt-stalk - Gather forensic data about MySQL when a problem occurs # processname: autoband # pidfile: /var/run/pt-stalk.pid ### BEGIN INIT INFO # Provides: $pt-stalk ### END INIT INFO id=`id -u` if [ x"$id" != x"0" ]; then echo "This script must be run under root proivileges." exit 1 fi # Source function library. . /etc/init.d/functions RETVAL=0 MYSQL_SOCKET='/var/lib/mysql/mysql.sock' export HOME=/tmp # needed for pt-stalk PT_VER=`pt-stalk --version | awk '{print $2;}' | perl -pe 's/[^\d]//g'` if [ x"$PT_VER" = x"" ]; then PT_VER=0; fi PT_STALK="pt-stalk --daemonize --dest /mnt/data/pt-stalk --threshold 70" if [ $PT_VER -ge 220 ]; then # Since 2.2.0 pt-stalk supports --notify-by-email PT_STALK="$PT_STALK --notify-by-email=sys@ivinco.com" fi run_on_mysql_up() { while test ! -S "$MYSQL_SOCKET"; do sleep 1; done exec $@ } start() { echo -n "Schedule to start pt-stalk when MySQL is available: " run_on_mysql_up $PT_STALK & RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success touch /var/lock/subsys/pt-stalk else echo_failure fi echo } stop() { echo -n "Shutting down pt-stalk: " killproc pt-stalk RETVAL=$? echo if [ $RETVAL -eq 0 ]; then rm -f /var/lock/subsys/pt-stalk /var/run/pt-stalk.pid fi } restart() { echo -n "Restarting pt-stalk: " stop start } case "$1" in start) start ;; stop) stop ;; status) status pt-stalk RETVAL=$? ;; restart) restart ;; *) echo "Usage: $0 {start|stop|status|restart}" ;; esac exit $RETVAL