Преглед изворни кода

Implement features in ticket #202

Michael Schloh von Bennewitz пре 22 година
родитељ
комит
2ce39935f2
2 измењених фајлова са 43 додато и 4 уклоњено
  1. 28 3
      vrrpd/rc.vrrpd
  2. 15 1
      vrrpd/vrrpd.spec

+ 28 - 3
vrrpd/rc.vrrpd

@@ -11,20 +11,45 @@
     vrrpd_log_minsize="1M"
     vrrpd_log_complevel="9"
 
+%common
+    vrrpd_signal () {
+        killall -$1 vrrpd >/dev/null 2>&1
+    }
+
+%status -u @l_susr@ -o
+    vrrpd_usable="unknown"
+    vrrpd_active="no"
+    rcService vrrpd enable yes && \
+        vrrpd_signal 0 && vrrpd_active="yes"
+    echo "vrrpd_enable=\"$vrrpd_enable\""
+    echo "vrrpd_usable=\"$vrrpd_usable\""
+    echo "vrrpd_active=\"$vrrpd_active\""
+
 %start -u @l_susr@
     rcService vrrpd enable yes || exit 0
+    rcService vrrpd active yes && exit 0
     @l_prefix@/sbin/vrrpd >/dev/null 2>&1
 
 %stop -u @l_susr@
     rcService vrrpd enable yes || exit 0
-    /usr/bin/killall vrrpd >/dev/null 2>&1
+    rcService vrrpd active no && exit 0
+        vrrpd_signal TERM
+
+%restart -u @l_susr@
+    rcService vrrpd enable yes || exit 0
+    rcService vrrpd active no && exit 0
+    rc vrrpd stop
+    sleep 2
+    rc vrrpd start
 
 %daily -u @l_susr@
     rcService vrrpd enable yes || exit 0
+
+    #   rotate logfiles
     shtool rotate -f \
         -n ${vrrpd_log_numfiles} -s ${vrrpd_log_minsize} -d \
-        -z ${vrrpd_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \
+        -z ${vrrpd_log_complevel} -o @l_susr@ -g @l_mgrp@ -m 644 \
         -P "${vrrpd_log_prolog}" \
-        -E "${vrrpd_log_epilog}" \
+        -E "${vrrpd_log_epilog} && rc vrrpd restart" \
         @l_prefix@/var/vrrpd/vrrpd.log
 

+ 15 - 1
vrrpd/vrrpd.spec

@@ -35,7 +35,7 @@ Distribution: OpenPKG [JUNK]
 Group:        Network
 License:      BSD
 Version:      0.8.7
-Release:      20030918
+Release:      20031001
 
 #   package options
 %option       with_fsl  yes
@@ -118,3 +118,17 @@ AutoReqProv:  no
 %clean
     rm -rf $RPM_BUILD_ROOT
 
+%post
+    #   after upgrade, restart service
+    [ $1 -eq 2 ] || exit 0
+    eval `%{l_rc} vrrpd status 2>/dev/null`
+    [ ".$vrrpd_active" = .yes ] && %{l_rc} vrrpd restart
+    exit 0
+
+%preun
+    #   before erase, stop service and remove log files
+    [ $1 -eq 0 ] || exit 0
+    %{l_rc} vrrpd stop 2>/dev/null
+    rm -f $RPM_INSTALL_PREFIX/var/vrrpd/vrrpd.log* >/dev/null 2>&1 || true
+    exit 0
+