[packages/percona-toolkit] add initscript for pt-kill services

glen glen at pld-linux.org
Mon Apr 28 15:32:02 CEST 2014


commit a207031c379938aedeece8f3a5d04024e42356cd
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Mon Apr 28 16:31:41 2014 +0300

    add initscript for pt-kill services
    
    currently single instance and running as root

 percona-toolkit.spec |   9 ++++-
 pt-kill.init         | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 109 insertions(+), 1 deletion(-)
---
diff --git a/percona-toolkit.spec b/percona-toolkit.spec
index f9fc073..24f35a0 100644
--- a/percona-toolkit.spec
+++ b/percona-toolkit.spec
@@ -8,16 +8,20 @@ Group:		Applications/Databases
 Source0:	https://www.percona.com/downloads/percona-toolkit/%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	7514af32e0edff70c4934da2e5e36303
 Source1:	%{name}.conf
+Source2:	pt-kill.init
 Patch0:		no-versioncheck.patch
 URL:		http://www.percona.com/software/percona-toolkit/
 BuildRequires:	perl-ExtUtils-MakeMaker
 BuildRequires:	rpm-perlprov >= 4.1-13
+BuildRequires:	rpmbuild(macros) >= 1.228
 BuildRequires:	sed >= 4.0
 Requires:	perl-DBD-mysql >= 1.0
 Requires:	perl-DBI >= 1.13
 Requires:	perl-Term-ReadKey >= 2.10
 Obsoletes:	mysqldumpgrants
 Obsoletes:	mysqltoolkit
+Requires(post,preun):	/sbin/chkconfig
+Requires:	rc-scripts
 BuildArch:	noarch
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -55,10 +59,12 @@ find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -v
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},/etc/rc.d/init.d}
 %{__make} pure_install \
 	PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
 
+install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/pt-kill
+
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
 touch $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/percona-version-check
 
@@ -76,6 +82,7 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_sysconfdir}/%{name}
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
 %ghost %{_sysconfdir}/%{name}/percona-version-check
+%attr(754,root,root) /etc/rc.d/init.d/pt-kill
 %attr(755,root,root) %{_bindir}/pt-*
 %attr(755,root,root) %{_bindir}/mysqldumpgrants
 %{_mandir}/man1/%{name}.1*
diff --git a/pt-kill.init b/pt-kill.init
new file mode 100755
index 0000000..2ac3841
--- /dev/null
+++ b/pt-kill.init
@@ -0,0 +1,101 @@
+#!/bin/sh
+#
+# pt-kill	This shell script takes care of starting and stopping the pt-kill services.
+#
+# chkconfig:	345 60 40
+#
+# description: pt-kill stops long running MySQL queries
+# processname:	pt-kill
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Get network config
+. /etc/sysconfig/network
+
+# Check that networking is up.
+if is_yes "${NETWORKING}"; then
+	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+		msg_network_down "pt-kill"
+		exit 1
+	fi
+else
+	exit 0
+fi
+
+config=/etc/percona-toolkit/pt-kill.conf
+sentinel=/var/run/pt-kill/pt-kill.sentinel
+pidfile=/var/run/pt-kill/pt-kill.pid
+user=root
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/pt-kill ] && . /etc/sysconfig/pt-kill
+
+start() {
+	# Check if the service is already running?
+	if [ -f /var/lock/subsys/pt-kill ]; then
+		msg_already_running "pt-kill"
+		return
+	fi
+
+	msg_starting "pt-kill"
+	# FIXME: instead of removing, fix stop process
+	rm -f $sentinel
+	daemon --user $user --redirfds /usr/bin/pt-kill --config $config --daemonize --pid $pidfile --sentinel $sentinel
+	RETVAL=$?
+	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/pt-kill
+}
+
+stop() {
+	if [ ! -f /var/lock/subsys/pt-kill ]; then
+		msg_not_running "pt-kill"
+		return
+	fi
+
+	# Stop daemons.
+	msg_stopping "pt-kill"
+	run_cmd --user $user "pt-kill" /usr/bin/pt-kill --config $config --stop --sentinel $sentinel
+	# FIXME: wait for sentinel and remove it
+	rm -f /var/lock/subsys/pt-kill
+}
+
+condrestart() {
+	if [ ! -f /var/lock/subsys/pt-kill ]; then
+		msg_not_running "pt-kill"
+		RETVAL=$1
+		return
+	fi
+
+	stop
+	start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+	start
+	;;
+  stop)
+	stop
+	;;
+  restart)
+	stop
+	start
+	;;
+  try-restart)
+	condrestart 0
+	;;
+  force-reload)
+	condrestart 7
+	;;
+  status)
+	status --pidfile $pidfile pt-kill
+	RETVAL=$?
+	;;
+  *)
+	msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+	exit 3
+esac
+
+exit $RETVAL
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/percona-toolkit.git/commitdiff/a207031c379938aedeece8f3a5d04024e42356cd



More information about the pld-cvs-commit mailing list