[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