[arpwatch] replace SysV init script with systemd service

Miroslav Lichvar mlichvar at fedoraproject.org
Thu Jul 7 12:13:09 UTC 2011


commit 88ad459a1ea4024c964849e3ee7732dcb8196fa0
Author: Miroslav Lichvar <mlichvar at redhat.com>
Date:   Thu Jul 7 13:57:27 2011 +0200

    replace SysV init script with systemd service

 arpwatch.init    |   84 ------------------------------------------------------
 arpwatch.service |   12 ++++++++
 arpwatch.spec    |   24 ++++++++-------
 3 files changed, 25 insertions(+), 95 deletions(-)
---
diff --git a/arpwatch.service b/arpwatch.service
new file mode 100644
index 0000000..825731c
--- /dev/null
+++ b/arpwatch.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Arpwatch daemon which keeps track of ethernet/ip address pairings
+After=syslog.target network.target
+
+[Service]
+Type=oneshot
+EnvironmentFile=-/etc/sysconfig/arpwatch
+ExecStart=/usr/sbin/arpwatch $OPTIONS
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/arpwatch.spec b/arpwatch.spec
index f722bc8..630e512 100644
--- a/arpwatch.spec
+++ b/arpwatch.spec
@@ -9,15 +9,15 @@ Group: Applications/System
 License: BSD with advertising
 URL: http://ee.lbl.gov/
 Requires(pre): shadow-utils 
-Requires(post): /sbin/chkconfig
-Requires(preun): /sbin/chkconfig /sbin/service
-Requires(postun): /sbin/service
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
 Requires: /usr/sbin/sendmail
 BuildRequires: /usr/sbin/sendmail libpcap-devel
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Source0: ftp://ftp.ee.lbl.gov/arpwatch-%{version}.tar.gz
-Source1: arpwatch.init
+Source1: arpwatch.service
 Source2: arpwatch.sysconfig
 # created by:
 # wget -O- http://standards.ieee.org/regauth/oui/oui.txt | \
@@ -68,7 +68,7 @@ rm -rf $RPM_BUILD_ROOT
 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man8
 mkdir -p $RPM_BUILD_ROOT%{_sbindir}
 mkdir -p $RPM_BUILD_ROOT%{_vararpwatch}
-mkdir -p $RPM_BUILD_ROOT%{_initrddir}
+mkdir -p $RPM_BUILD_ROOT/lib/systemd/system
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
 
 make DESTDIR=$RPM_BUILD_ROOT install install-man
@@ -90,7 +90,7 @@ for i in arp2ethers massagevendor massagevendor-old; do
 done
 
 install -p -m644 *.dat $RPM_BUILD_ROOT%{_vararpwatch}
-install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/arpwatch
+install -p -m644 %{SOURCE1} $RPM_BUILD_ROOT/lib/systemd/system/arpwatch.service
 install -p -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/arpwatch
 install -p -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2
 bzip2 -df $RPM_BUILD_ROOT%{_vararpwatch}/ethercodes.dat.bz2
@@ -101,7 +101,8 @@ rm -f $RPM_BUILD_ROOT%{_sbindir}/massagevendor-old
 rm -rf $RPM_BUILD_ROOT
 
 %post
-/sbin/chkconfig --add arpwatch
+/bin/systemctl daemon-reload &> /dev/null
+:
 
 %pre
 if ! getent group arpwatch &> /dev/null; then
@@ -119,15 +120,16 @@ fi
 :
 
 %postun
+/bin/systemctl daemon-reload &> /dev/null
 if [ "$1" -ge 1 ]; then
-	/sbin/service arpwatch condrestart &> /dev/null
+	/bin/systemctl try-restart arpwatch.service &> /dev/null
 fi
 :
 
 %preun
 if [ "$1" -eq 0 ]; then
-	/sbin/service arpwatch stop &> /dev/null
-	/sbin/chkconfig --del arpwatch
+	/bin/systemctl --no-reload disable arpwatch.service &> /dev/null
+	/bin/systemctl stop arpwatch.service &> /dev/null
 fi
 :
 
@@ -139,7 +141,7 @@ fi
 %{_sbindir}/arp2ethers
 %{_sbindir}/massagevendor
 %{_mandir}/man8/*.8*
-%{_initrddir}/arpwatch
+/lib/systemd/system/arpwatch.service
 %config(noreplace) %{_sysconfdir}/sysconfig/arpwatch
 %defattr(-,arpwatch,arpwatch)
 %dir %{_vararpwatch}


More information about the scm-commits mailing list