[monit: 1/17] Service file added for systemd support Renamed default configuration file to match upstream

Maxim Burgerhout wzzrd at fedoraproject.org
Fri Dec 2 22:15:54 UTC 2011


commit 86c9a577f775422100c90e43d2eeb9f53edc167a
Author: Maxim Burgerhout <maxim at wzzrd.com>
Date:   Tue Jul 26 14:49:01 2011 +0200

    Service file added for systemd support
    Renamed default configuration file to match upstream

 monit-logging-conf |    3 ++
 monit.service      |   12 +++++++++
 monit.spec         |   65 +++++++++++++++++++++++++++++++++++++++------------
 3 files changed, 64 insertions(+), 16 deletions(-)
---
diff --git a/monit-logging-conf b/monit-logging-conf
new file mode 100644
index 0000000..8e4d21a
--- /dev/null
+++ b/monit-logging-conf
@@ -0,0 +1,3 @@
+# log to monit.log
+set logfile /var/log/monit.log
+
diff --git a/monit.service b/monit.service
new file mode 100644
index 0000000..2923136
--- /dev/null
+++ b/monit.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Monit process and file monitoring utility 
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/monit -c /etc/monitrc
+Type=forking
+PIDFile=/var/run/monit.pid
+ExecReload=/usr/bin/monit -c /etc/monitrc reload
+
+[Install]
+WantedBy=multi-user.target
diff --git a/monit.spec b/monit.spec
index 91404c4..b5c5b2f 100644
--- a/monit.spec
+++ b/monit.spec
@@ -1,6 +1,6 @@
 Name:           monit
 Version:        5.2.5
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Manages and monitors processes, files, directories and devices
 
 Group:          Applications/Internet
@@ -9,7 +9,8 @@ URL:            http://www.tildeslash.com/monit
 Source0:        http://www.tildeslash.com/monit/dist/monit-%{version}.tar.gz
 Source1:        monit-sysv-initscript
 Source2:        monit.logrotate
-Patch0:         monit-default-config-name.patch
+Source3:        monit.service
+Source4:        monit-logging-conf
 Patch1:         monit-no-startup-msg.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -28,9 +29,13 @@ monit is a utility for managing and monitoring, processes, files, directories
 and devices on a UNIX system. Monit conducts automatic maintenance and repair
 and can execute meaningful causal actions in error situations.
 
+%description sysvinit
+This package contains the deprecated sysv style init script for Monit. The main
+package includes a service file for systemd.
+
+
 %prep
 %setup -q
-%patch0 -b .confname
 %patch1 -b .nomsg
 
 %build
@@ -42,7 +47,7 @@ rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT
 
 install -p -D -m0755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/monit
-install -p -D -m0600 monitrc $RPM_BUILD_ROOT%{_sysconfdir}/monit.conf
+install -p -D -m0600 monitrc $RPM_BUILD_ROOT%{_sysconfdir}/monitrc
 install -p -D -m0755 monit $RPM_BUILD_ROOT%{_bindir}/monit
 
 # Log file & logrotate config
@@ -50,51 +55,79 @@ install -p -D -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/monit
 mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log
 install -m0600 /dev/null $RPM_BUILD_ROOT%{_localstatedir}/log/monit
 
+# systemd service file
+mkdir -p ${RPM_BUILD_ROOT}/lib/systemd/system
+install -m0644 %{SOURCE3} ${RPM_BUILD_ROOT}/lib/systemd/system/monit.service
+
 # Let's include some good defaults
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/monit.d
-echo "
-# set daemon mode timeout to 1 minute
-set daemon 60
-# Include all files from %{_sysconfdir}/monit.d/
-include %{_sysconfdir}/monit.d/*" >> $RPM_BUILD_ROOT%{_sysconfdir}/monit.conf
-
-echo "# log to monit.log
-set logfile /var/log/monit
-" > $RPM_BUILD_ROOT%{_sysconfdir}/monit.d/logging
+install -p -D -m0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/monit.d/logging
 
+%{__sed} -i 's/# set daemon  120.*/set daemon 60  # check services at 1-minute intervals/' \
+    $RPM_BUILD_ROOT%{_sysconfdir}/monitrc
+ 
+%{__sed} -i 's/#  include \/etc\/monit.d\/\*/include \/etc\/monit.d\/\*/' \
+    $RPM_BUILD_ROOT%{_sysconfdir}/monitrc
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %post
+# This reload systemd after installing / updating the service file
+/bin/systemctl daemon-reload &> /dev/null || :
+
+%post sysvinit
 # This adds the proper /etc/rc*.d links for the script
 /sbin/chkconfig --add monit
 
 %preun
 if [ $1 = 0 ]; then
+        /bin/systemctl disable monit.service &> /dev/null
+        /bin/systemctl stop monit.service &> /dev/null
+fi
+
+%preun sysvinit
+if [ $1 = 0 ]; then
         /sbin/service monit stop >/dev/null 2>&1
         /sbin/chkconfig --del monit
 fi
 
 %postun
 if [ "$1" -ge "1" ]; then
-        /sbin/service monit condrestart >/dev/null 2>&1 || :
+        /bin/systemctl try-restart monit.service &> /dev/null ||
 fi
 
+%postun sysvinit
+if [ "$1" -ge "1" ]; then
+        /sbin/service monit condrestart >/dev/null &> /dev/null
+fi
+
+%triggerpostun -n monit-sysvinit -- monit < 5.2.5-2
+/sbin/chkconfig --add monit >/dev/null 2>&1 || :
 
 %files
 %defattr(-,root,root,-)
 %doc CHANGES.txt COPYING LICENSE PLATFORMS README README.DEVELOPER README.SSL
-%config(noreplace) %{_sysconfdir}/monit.conf
+%config(noreplace) %{_sysconfdir}/monitrc
 %config(noreplace) %{_sysconfdir}/monit.d/logging
 %config(noreplace) %{_sysconfdir}/logrotate.d/monit
 %ghost %{_localstatedir}/log/monit
+/lib/systemd/system/monit.service
 %{_sysconfdir}/monit.d/
-%{_initrddir}/monit
 %{_bindir}/%{name}
 %{_mandir}/man1/monit.1*
 
+%files sysvinit
+%{_initrddir}/monit
+
+
 %changelog
+* Wed Jul 20 2011 Maxim Burgerhout <wzzrd at fedoraproject.org> - 5.2.5-2
+- Added systemd service definition file
+- Move sysv init script to separate package (monit-sysvinit)
+- Reverted the name of the configuration file to /etc/monitrc, like upstream
+  has
+
 * Sat May 07 2011 Maxim Burgerhout <wzzrd at fedoraproject.org> - 5.2.5-1
 - Sync to upstream bugfix release; most important new features:
 - Memory footprint decreased by 10%


More information about the scm-commits mailing list