diff --git a/cvsd/rc.cvsd b/cvsd/rc.cvsd index f21c5186f8..99bb1521c3 100644 --- a/cvsd/rc.cvsd +++ b/cvsd/rc.cvsd @@ -11,23 +11,50 @@ cvsd_log_minsize="1M" cvsd_log_complevel="9" +%common + cvsd_pidfile="@l_prefix@/var/cvsd/cvsd.pid" + cvsd_cfgfile="@l_prefix@/etc/cvsd/cvsd.conf" + cvsd_signal () { + [ -f $cvsd_pidfile ] && kill -$1 `cat $cvsd_pidfile` + } + cvsd_chroot () { + local d + d=`sed -ne 's;^ *[Rr][Oo][Oo][Tt][Jj][Aa][iI][lL] *;;p' $cvsd_cfgfile` + [ ".$d" != . ] && \ + [ -d $d ] && \ + [ -d $d/bin ] && \ + [ -d $d/lib ] && \ + [ -d $d/dev ] && \ + [ -d $d/etc ] && \ + [ -d $d/usr ] && \ + [ -d $d/tmp ] + } + +%status -p 200 -u @l_susr@ -o + cvsd_usable="no" + cvsd_active="no" + rcService cvsd enable yes && \ + cvsd_chroot && cvsd_usable="yes" + rcService cvsd enable yes && \ + cvsd_signal 0 && cvsd_active="yes" + echo "cvsd_enable=\"$cvsd_enable\"" + echo "cvsd_usable=\"$cvsd_usable\"" + echo "cvsd_active=\"$cvsd_active\"" + %start -p 200 -u @l_susr@ rcService cvsd enable yes || exit 0 + cvsd_chroot || exit 0; @l_prefix@/sbin/cvsd %stop -p 200 -u @l_susr@ rcService cvsd enable yes || exit 0 - if [ -f @l_prefix@/var/cvsd/cvsd.pid ]; then - kill `cat @l_prefix@/var/cvsd/cvsd.pid` - fi + cvsd_signal TERM %restart -u @l_susr@ rcService cvsd enable yes || exit 0 - if [ -f @l_prefix@/var/cvsd/cvsd.pid ]; then - kill `cat @l_prefix@/var/cvsd/cvsd.pid` - sleep 1 - fi - @l_prefix@/sbin/cvsd + rc cvsd stop + sleep 2 + rc cvsd start %daily -u @l_susr@ rcService cvsd enable yes || exit 0 diff --git a/dcron/dcron.spec b/dcron/dcron.spec index 5da6336151..81dc06e52d 100644 --- a/dcron/dcron.spec +++ b/dcron/dcron.spec @@ -37,7 +37,7 @@ Distribution: OpenPKG [EVAL] Group: System License: GPL Version: %{V_major}.%{V_minor} -Release: 20030719 +Release: 20030721 # list of sources Source0: http://apollo.backplane.com/FreeSrc/dcron%{V_major}%{V_minor}.tgz diff --git a/dcron/rc.dcron b/dcron/rc.dcron index 012e8560ed..20bbe0010c 100644 --- a/dcron/rc.dcron +++ b/dcron/rc.dcron @@ -6,15 +6,27 @@ %config dcron_enable="$openpkg_rc_def" +%common + dcron_pidfile="@l_prefix@/var/dcron/dcron.pid" + dcron_signal () { + [ -f $dcron_pidfile ] && kill -$1 `cat $dcron_pidfile` + } + +%status -p 200 -u @l_susr@ -o + dcron_usable="unknown" + dcron_active="no" + rcService dcron enable yes && \ + dcron_signal 0 && dcron_active="yes" + echo "dcron_enable=\"$dcron_enable\"" + echo "dcron_usable=\"$dcron_usable\"" + echo "dcron_active=\"$dcron_active\"" + %start -p 200 -u @l_susr@ rcService dcron enable yes || exit 0 - rm -f @l_prefix@/var/dcron/dcron.pid @l_prefix@/sbin/crond %stop -p 200 -u @l_susr@ rcService dcron enable yes || exit 0 - if [ -f @l_prefix@/var/dcron/dcron.pid ]; then - kill -TERM `cat @l_prefix@/var/dcron/dcron.pid` - rm -f @l_prefix@/var/dcron/dcron.pid - fi + dcron_signal TERM + rm -f @l_prefix@/var/dcron/dcron.pid 2>/dev/null || true