[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