From 6330ed9eb02466bc06ed634ac55c49f2561e353d Mon Sep 17 00:00:00 2001 From: Ruben Kerkhof Date: Sep 15 2013 18:02:21 +0000 Subject: Convert to systemd (#913501) --- diff --git a/mmm_agent.conf b/mmm_agent.conf index 6df58e7..ae54b78 100644 --- a/mmm_agent.conf +++ b/mmm_agent.conf @@ -1,6 +1,6 @@ include mmm_common.conf -# The 'this' variable refers to this server. Proper operation requires -# that 'this' server (db1 by default), as well as all other servers, have the +# The 'this' variable refers to this server. Proper operation requires +# that 'this' server (db1 by default), as well as all other servers, have the # proper IP addresses set in mmm_common.conf. this db1 diff --git a/mmm_common.conf b/mmm_common.conf index ac0ee65..7e9caa2 100644 --- a/mmm_common.conf +++ b/mmm_common.conf @@ -2,7 +2,7 @@ active_master_role writer cluster_interface eth0 - pid_path /var/run/mysql-mmm/mmm_agentd.pid + pid_path /run/mysql-mmm-agent.pid bin_path /usr/libexec/mysql-mmm/ replication_user replicant replication_password slave diff --git a/mmm_mon.conf b/mmm_mon.conf index c0ebf6d..179deb7 100644 --- a/mmm_mon.conf +++ b/mmm_mon.conf @@ -2,14 +2,14 @@ include mmm_common.conf ip 127.0.0.1 - pid_path /var/run/mysql-mmm/mmm_mond.pid + pid_path /run/mysql-mmm-monitor.pid bin_path /usr/libexec/mysql-mmm status_path /var/lib/mysql-mmm/mmm_mond.status ping_ips 192.168.100.50 auto_set_online 60 # The kill_host_bin does not exist by default, though the monitor will - # throw a warning about it missing. See the section 5.10 "Kill Host + # throw a warning about it missing. See the section 5.10 "Kill Host # Functionality" in the PDF documentation. # # kill_host_bin /usr/libexec/mysql-mmm/monitor/kill_host diff --git a/mysql-mmm-agent.service b/mysql-mmm-agent.service new file mode 100644 index 0000000..a4a0a97 --- /dev/null +++ b/mysql-mmm-agent.service @@ -0,0 +1,12 @@ +[Unit] +Description=MySQL MMM agent +After=network.target mysqld.service + +[Service] +Type=forking +PIDFile=/run/mysql-mmm-agent.pid +ExecStart=/usr/sbin/mmm_agentd +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/mysql-mmm-monitor.service b/mysql-mmm-monitor.service new file mode 100644 index 0000000..5086fc4 --- /dev/null +++ b/mysql-mmm-monitor.service @@ -0,0 +1,12 @@ +[Unit] +Description=MySQL MMM Monitor +After=network.target mysqld.service + +[Service] +Type=forking +PIDFile=/run/mysql-mmm-monitor.pid +ExecStart=/usr/sbin/mmm_mond +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/mysql-mmm.spec b/mysql-mmm.spec index c74b900..538b888 100644 --- a/mysql-mmm.spec +++ b/mysql-mmm.spec @@ -2,7 +2,7 @@ Name: mysql-mmm Version: 2.2.1 -Release: 10%{?dist} +Release: 11%{?dist} Summary: Multi-Master Replication Manager for MySQL License: GPLv2 URL: http://mysql-mmm.org @@ -10,15 +10,17 @@ Group: Applications/System Source: http://mysql-mmm.org/_media/:mmm2:/%{name}-%{version}.tar.gz Source1: mysql-mmm.logrotate Source2: http://mysql-mmm.org/_media/:mmm2:/%{name}-%{version}.pdf -Source3: mysql-mmm-agent.init -Source4: mysql-mmm-monitor.init -Source5: mmm_mon_log.conf -Source6: mmm_agent.conf -Source7: mmm_mon.conf -Source8: mmm_tools.conf -Source9: mmm_common.conf +Source3: mmm_mon_log.conf +Source4: mmm_agent.conf +Source5: mmm_mon.conf +Source6: mmm_tools.conf +Source7: mmm_common.conf +Source8: mysql-mmm-agent.service +Source9: mysql-mmm-monitor.service BuildArch: noarch +BuildRequires: systemd + Provides: mmm = %{version}-%{release} Provides: mysql-master-master = %{version}-%{release} @@ -40,6 +42,9 @@ Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: iproute Requires: perl-DBD-mysql +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd Provides: mysql-master-master-agent = %{version}-%{release} Provides: mmm-agent = %{version}-%{release} @@ -52,6 +57,9 @@ Summary: MMM Monitor Server Daemon and Libraries Group: Applications/System Requires: %{name} = %{version}-%{release} Requires: perl(Class::Singleton), perl(DBD::mysql), perl(Time::HiRes) +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd Provides: mysql-master-master-monitor = %{version}-%{release} Provides: mmm-monitor = %{version}-%{release} @@ -85,89 +93,51 @@ EOF %patch0 -p1 find . -type f -name "*.orig" -print0 | xargs -0r rm +%build + %install make install DESTDIR=%{buildroot} -# additional -%{__mkdir_p} %{buildroot}%{_sysconfdir}/logrotate.d \ - %{buildroot}%{_localstatedir}/run/%{name} \ - %{buildroot}%{_localstatedir}/lib/%{name} \ - %{buildroot}%{_localstatedir}/lock/subsys - -%{__install} -p -m 0644 %SOURCE1 %{buildroot}%{_sysconfdir}/logrotate.d/mysql-mmm +%{__install} -D -p -m 0644 %SOURCE1 %{buildroot}%{_sysconfdir}/logrotate.d/mysql-mmm +%{__install} -d -m 0755 %{buildroot}%{_localstatedir}/lib/%{name} # Replace config files %{__rm} -f %{buildroot}%{_sysconfdir}/mysql-mmm/*.conf -%{__install} -p -m 0640 %SOURCE5 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon_log.conf -%{__install} -p -m 0640 %SOURCE6 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_agent.conf -%{__install} -p -m 0640 %SOURCE7 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon.conf -%{__install} -p -m 0640 %SOURCE8 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_tools.conf -%{__install} -p -m 0640 %SOURCE9 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_common.conf - -# Replace our init scripts -%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-agent -%{__rm} -f %{buildroot}%{_sysconfdir}/init.d/mysql-mmm-monitor +%{__install} -p -m 0640 %SOURCE3 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon_log.conf +%{__install} -p -m 0640 %SOURCE4 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_agent.conf +%{__install} -p -m 0640 %SOURCE5 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_mon.conf +%{__install} -p -m 0640 %SOURCE6 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_tools.conf +%{__install} -p -m 0640 %SOURCE7 %{buildroot}%{_sysconfdir}/mysql-mmm/mmm_common.conf +%{__install} -D -p -m 0640 %SOURCE8 %{buildroot}%{_unitdir}/mysql-mmm-agent.service +%{__install} -D -p -m 0640 %SOURCE9 %{buildroot}%{_unitdir}/mysql-mmm-monitor.service -%{__install} -D -p -m 0755 %SOURCE3 %{buildroot}%{_initddir}/mysql-mmm-agent -%{__install} -D -p -m 0755 %SOURCE4 %{buildroot}%{_initddir}/mysql-mmm-monitor - -# Create defaults files -%{__mkdir_p} %{buildroot}%{_sysconfdir}/default - -# Create %%ghost files -touch %{buildroot}%{_localstatedir}/run/mysql-mmm/mmm_agentd.pid -touch %{buildroot}%{_localstatedir}/run/mysql-mmm/mmm_mond.pid -touch %{buildroot}%{_localstatedir}/lock/subsys/mysql-mmm-agent -touch %{buildroot}%{_localstatedir}/lock/subsys/mysql-mmm-monitor - -cat >%{buildroot}%{_sysconfdir}/default/mysql-mmm-agent <%{buildroot}%{_sysconfdir}/default/mysql-mmm-monitor < /dev/null 2>&1 - /sbin/chkconfig --del mysql-mmm-agent -fi +%post monitor +%systemd_post mysql-mmm-monitor.service %preun monitor -if [ $1 -eq 0 ]; then - /sbin/service mysql-mmm-monitor stop > /dev/null 2>&1 - /sbin/chkconfig --del mysql-mmm-monitor -fi +%systemd_preun mysql-mmm-monitor.service +%postun monitor +%systemd_postun mysql-mmm-monitor.service %files %defattr(-,root,root,-) -%doc COPYING INSTALL README VERSION %{name}-%{version}.pdf +%doc COPYING README VERSION %{name}-%{version}.pdf %dir %{_sysconfdir}/mysql-mmm %attr(755,root,root) %dir %{_localstatedir}/lib/mysql-mmm -%ghost %attr(755,root,root) %dir %{_localstatedir}/run/mysql-mmm %attr(755,root,root) %dir %{_localstatedir}/log/mysql-mmm %config(noreplace) %{_sysconfdir}/logrotate.d/mysql-mmm %config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_common.conf @@ -187,30 +157,27 @@ fi %defattr(-,root,root,-) %doc README %config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_agent.conf -%config(noreplace) %attr(644,root,root) %{_sysconfdir}/default/mysql-mmm-agent -%ghost %{_localstatedir}/run/mysql-mmm/mmm_agentd.pid -%attr(755,root,root) %{_initddir}/mysql-mmm-agent -%ghost %{_localstatedir}/lock/subsys/mysql-mmm-agent %{perl_vendorlib}/MMM/Agent %{_libexecdir}/mysql-mmm/agent/ %{_sbindir}/mmm_agentd +%{_unitdir}/mysql-mmm-agent.service %files monitor %defattr(-,root,root,-) %doc README %config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_mon.conf %config(noreplace) %attr(640,root,root) %{_sysconfdir}/mysql-mmm/mmm_mon_log.conf -%config(noreplace) %attr(644,root,root) %{_sysconfdir}/default/mysql-mmm-monitor -%attr(755,root,root) %{_initddir}/mysql-mmm-monitor -%ghost %{_localstatedir}/run/mysql-mmm/mmm_mond.pid -%ghost %{_localstatedir}/lock/subsys/mysql-mmm-monitor %{perl_vendorlib}/MMM/Monitor %{_libexecdir}/mysql-mmm/monitor/ %{_sbindir}/mmm_mond %{_sbindir}/mmm_control +%{_unitdir}/mysql-mmm-monitor.service %changelog +* Sun Sep 15 2013 Ruben Kerkhof 2.2.1-11 +- Convert to systemd (#913501) + * Sun Sep 15 2013 Ruben Kerkhof 2.2.1-10 - Monitor needs perl-Time-HiRes (#915665)