[mon] Migrate to systemd.

Jon Ciesla limb at fedoraproject.org
Wed Apr 18 14:32:16 UTC 2012


commit 2a3c3c97206ac76445d8b63e59ff5453fd899116
Author: Jon Ciesla <limburgher at gmail.com>
Date:   Wed Apr 18 09:32:07 2012 -0500

    Migrate to systemd.

 mon.service |   10 ++++++++++
 mon.spec    |   46 +++++++++++++++++++++++++++++++++++-----------
 2 files changed, 45 insertions(+), 11 deletions(-)
---
diff --git a/mon.service b/mon.service
new file mode 100644
index 0000000..473898d
--- /dev/null
+++ b/mon.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Mon - Service Monitor
+
+[Service]
+Type=forking
+PIDFile=/run/mon.pid
+ExecStart=/usr/bin/mon -f -c /etc/mon/mon.cf -P /run/mon.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mon.spec b/mon.spec
index 2c3b4ce..4889898 100644
--- a/mon.spec
+++ b/mon.spec
@@ -7,7 +7,7 @@
 Name:           mon
 Summary:        General-purpose resource monitoring system
 Version:        1.2.0
-Release:        9%{?dist}
+Release:        10%{?dist}
 License:        GPLv2+
 Group:          Applications/Internet
 URL:            http://www.kernel.org/software/mon/
@@ -17,7 +17,7 @@ Source1:        ftp://ftp.kernel.org/pub/software/admin/mon/contrib/cgi-bin/mon.
 Source2:        ftp://ftp.kernel.org/pub/software/admin/mon/contrib/all-alerts.tar.bz2
 
 Source3:        mon.cf
-Source4:        mon.init
+Source4:        mon.service
 Source5:        userfile
 
 Patch0:         mon-1.2.0-perl.patch
@@ -27,6 +27,9 @@ Requires:       perl(Authen::PAM)
 Requires:       iputils
 Requires:       fping
 Requires:       traceroute
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
 
 BuildRequires:  dos2unix
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -85,7 +88,7 @@ install -d -m0755 $RPM_BUILD_ROOT%{_bindir}             \
         $RPM_BUILD_ROOT%{_mandir}/man{1,8}/             \
         $RPM_BUILD_ROOT%{_libdir}/mon/{alert.d,mon.d}/  \
         $RPM_BUILD_ROOT%{_sysconfdir}/mon/              \
-        $RPM_BUILD_ROOT%{_initrddir}                    \
+        $RPM_BUILD_ROOT%{_unitdir}                    \
         $RPM_BUILD_ROOT%{_localstatedir}/www/cgi-bin/   \
         $RPM_BUILD_ROOT%{_localstatedir}/lib/mon/{log.d,state.d}/
 
@@ -100,7 +103,7 @@ install -p -m0755 alerts/*/*.alert $RPM_BUILD_ROOT%{_libdir}/mon/alert.d/
 install -d $RPM_BUILD_ROOT%{_sysconfdir}/mon
 %{fixlib} etc/auth.cf >$RPM_BUILD_ROOT%{_sysconfdir}/mon/auth.cf
 %{fixlib} %{SOURCE3} >$RPM_BUILD_ROOT%{_sysconfdir}/mon/mon.cf
-install -Dp -m0755 %{SOURCE4} $RPM_BUILD_ROOT%{_initrddir}/mon
+install -Dp -m0644 %{SOURCE4} $RPM_BUILD_ROOT%{_unitdir}/mon.service
 install -Dp -m0600 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mon/userfile
 
 install -Dp -m0755 mon.cgi-%{moncgi_version}/mon.cgi $RPM_BUILD_ROOT%{_localstatedir}/www/cgi-bin/mon.cgi
@@ -124,18 +127,36 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %post
-/sbin/chkconfig --add mon
+if [ $1 -eq 1 ] ; then 
+    # Initial installation 
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
 
 
 %preun
-if [ $1 -eq 0 ]; then
-        /sbin/service mon stop &>/dev/null || :
-        /sbin/chkconfig --del mon
+if [ $1 -eq 0 ] ; then
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable mon.service > /dev/null 2>&1 || :
+    /bin/systemctl stop mon.service > /dev/null 2>&1 || :
 fi
 
-
 %postun
-/sbin/service mon condrestart &>/dev/null || :
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    /bin/systemctl try-restart mon.service >/dev/null 2>&1 || :
+fi
+
+%triggerun -- mon < 1.2.0-10
+# Save the current service runlevel info
+# User must manually run systemd-sysv-convert --apply mon
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save mon >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del mon >/dev/null 2>&1 || :
+/bin/systemctl try-restart mon.service >/dev/null 2>&1 || :
+
 
 
 %files
@@ -145,7 +166,7 @@ fi
 %doc alerts/*/*.README mon.cgi-1.52/
 %doc clients/{skymon,batch-example} etc/*.cf etc/example.m4 etc/example.monshowrc
 %config(noreplace) %{_sysconfdir}/mon/
-%{_initrddir}/*
+%{_unitdir}/*
 %{_mandir}/man?/*
 %{_localstatedir}/www/cgi-bin/mon.cgi
 %{_bindir}/*
@@ -172,6 +193,9 @@ fi
 
 
 %changelog
+* Wed Apr 18 2012 Jon Ciesla <limburgher at gmail.com> - 1.2.0-10
+- Migrate to systemd, BZ 789890.
+
 * Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.0-9
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the scm-commits mailing list