From 6a11f6c338543c675411363b2acc0be095c57630 Mon Sep 17 00:00:00 2001 From: Michael van Elst Date: Tue, 22 Jul 2003 15:01:01 +0000 Subject: [PATCH] %status and pidfile handling --- dss/rc.dss | 61 +++++++++++++++++++++++++++------------------- snmp/rc.snmp | 27 +++++++++++++------- sysmon/rc.sysmon | 35 +++++++++++++++++++------- sysmon/sysmon.spec | 4 +++ 4 files changed, 84 insertions(+), 43 deletions(-) diff --git a/dss/rc.dss b/dss/rc.dss index 314a746f0f..10f94caf59 100644 --- a/dss/rc.dss +++ b/dss/rc.dss @@ -7,40 +7,51 @@ dss_enable="$openpkg_rc_def" dss_admin="no" +%common + dss_daemon_pidfile="@l_prefix@/var/dss/dssdaemon.pid" + dss_admin_pidfile="@l_prefix@/var/dss/dssadmin.pid" + dss_signal () { + [ -f $dss_daemon_pidfile ] \ + && kill -$1 `cat $dss_daemon_pidfile` + local rc=$? + if rcVarIsYes dss_admin; then + [ -f $dss_admin_pidfile ] \ + && kill -$1 `cat $dss_admin_pidfile` \ + && [ $rc -eq 0 ] + rc=$? + fi + [ $rc -eq 0 ] + } + +%status -u @l_susr@ -o + dss_usable="unknown" + dss_active="no" + rcService dss enable yes && \ + dss_signal 0 && dss_active="yes" + echo "dss_enable=\"$dss_enable\"" + echo "dss_usable=\"$dss_usable\"" + echo "dss_active=\"$dss_active\"" + %start -u @l_susr@ rcService dss enable yes || exit 0 @l_prefix@/sbin/DarwinStreamingServer -d >/dev/null 2>&1 & - echo $! >@l_prefix@/var/dss/dssdaemon.pid + echo $! >$dss_daemon_pidfile if rcVarIsYes dss_admin; then - @l_prefix@/sbin/streamingadminserver -c @l_prefix@/etc/dss/streamingadmin.conf + @l_prefix@/sbin/streamingadminserver \ + -c @l_prefix@/etc/dss/streamingadmin.conf \ + >/dev/null 2>&1 & + echo $! >$dss_admin_pidfile fi %stop -u @l_susr@ rcService dss enable yes || exit 0 - if [ -f @l_prefix@/var/dss/dssdaemon.pid ]; then - kill -TERM `cat @l_prefix@/var/dss/dssdaemon.pid` - rm @l_prefix@/var/dss/dssdaemon.pid - fi - if rcVarIsYes dss_admin; then - if [ -f @l_prefix@/var/dss/dssadmin.pid ]; then - kill -TERM `cat @l_prefix@/var/dss/dssadmin.pid` - rm @l_prefix@/var/dss/dssadmin.pid - fi - fi + dss_signal TERM + rm -f $dss_daemon_pidfile 2>/dev/null || true + rm -f $dss_admin_pidfile 2>/dev/null || true %restart -u @l_susr@ rcService dss enable yes || exit 0 - if [ -f @l_prefix@/var/dss/dssdaemon.pid ]; then - kill -TERM `cat @l_prefix@/var/dss/dssdaemon.pid` - rm @l_prefix@/var/dss/dssdaemon.pid - fi - @l_prefix@/sbin/DarwinStreamingServer -d >/dev/null 2>&1 & - echo $! >@l_prefix@/var/dss/dssdaemon.pid - if rcVarIsYes dss_admin; then - if [ -f @l_prefix@/var/dss/dssadmin.pid ]; then - kill -TERM `cat @l_prefix@/var/dss/dssadmin.pid` - rm @l_prefix@/var/dss/dssadmin.pid - fi - @l_prefix@/sbin/streamingadminserver -c @l_prefix@/etc/dss/streamingadmin.conf - fi + rc dss stop + sleep 2 + rc dss start diff --git a/snmp/rc.snmp b/snmp/rc.snmp index ad5669b73f..aa62c8782a 100644 --- a/snmp/rc.snmp +++ b/snmp/rc.snmp @@ -12,16 +12,27 @@ snmp_log_complevel="9" %common + snmp_pidfile="@l_prefix@/var/snmp/snmpd.pid" + snmp_config="@l_prefix@/etc/snmp/snmpd.conf" snmp_signal () { - if [ -f "@l_prefix@/var/snmp/snmpd.pid" ]; then - kill -$1 `cat @l_prefix@/var/snmp/snmpd.pid` - fi + [ -f $snmp_pidfile ] && kill -$1 `cat $snmp_pidfile` } +%status -u @l_susr@ -o + snmp_usable="no" + snmp_active="no" + rcService snmp enable yes && \ + [ -f $snmp_config ] && snmp_usable="yes" + rcService snmp enable yes && \ + snmp_signal 0 && snmp_active="yes" + echo "snmp_enable=\"$snmp_enable\"" + echo "snmp_usable=\"$snmp_usable\"" + echo "snmp_active=\"$snmp_active\"" + %start -u @l_susr@ rcService snmp enable yes || exit 0 - if [ -f @l_prefix@/etc/snmp/snmpd.conf ]; then - @l_prefix@/sbin/snmpd -s -P @l_prefix@/var/snmp/snmpd.pid + if [ -f $snmp_config ]; then + @l_prefix@/sbin/snmpd -s -P $snmp_pidfile fi %stop -u @l_susr@ @@ -30,11 +41,9 @@ %restart -u @l_susr@ rcService snmp enable yes || exit 0 - snmp_signal TERM + rc snmp stop sleep 2 - if [ -f @l_prefix@/etc/snmp/snmpd.conf ]; then - @l_prefix@/sbin/snmpd -s -P @l_prefix@/var/snmp/snmpd.pid - fi + rc snmp start %daily -u @l_susr@ rcService snmp enable yes || exit 0 diff --git a/sysmon/rc.sysmon b/sysmon/rc.sysmon index 19f86f3a74..8d584d90ff 100644 --- a/sysmon/rc.sysmon +++ b/sysmon/rc.sysmon @@ -10,23 +10,40 @@ sysmon_log_numfiles="10" sysmon_log_minsize="1M" sysmon_log_complevel="9" + sysmon_stop_timeout="60" %common - sysmon_pidfile="@l_prefix@/var/sysmon/sysmon.pid" + sysmon_pidfile="@l_prefix@/var/sysmon/sysmond.pid" + sysmon_signal () { + [ -f $sysmon_pidfile ] && kill -$1 `cat $sysmon_pidfile` + } + +%status -u @l_susr@ -o + sysmon_usable="unknown" + sysmon_active="no" + rcService sysmon enable yes && \ + sysmon_signal 0 && sysmon_active="yes" + echo "sysmon_enable=\"$sysmon_enable\"" + echo "sysmon_usable=\"$sysmon_usable\"" + echo "sysmon_active=\"$sysmon_active\"" %start -u @l_susr@ rcService sysmon enable yes || exit 0 - rcTmp -i -p sysmon - logfile=`rcTmp -f -n log` - @l_prefix@/sbin/sysmond -q -f @l_prefix@/etc/sysmon/sysmon.conf >$logfile 2>&1 - grep "pid" $logfile | sed -e 's;^.*pid \([0-9]*\).*$;\1;' >$sysmon_pidfile - rcTmp -k + @l_prefix@/sbin/sysmond -q -f @l_prefix@/etc/sysmon/sysmon.conf >/dev/null 2>&1 %stop -u @l_susr@ rcService sysmon enable yes || exit 0 - if [ -f $sysmon_pidfile ]; then - kill -TERM `cat $sysmon_pidfile` - fi + sysmon_signal TERM + +%restart -u @l_susr@ + rcService sysmon enable yes || exit 0 + rc sysmon stop + sleep 2 + rc sysmon start + +%reload -u @l_susr@ + rcService sysmon enable yes || exit 0 + sysmon_signal HUP %daily -u @l_susr@ rcService sysmon enable yes || exit 0 diff --git a/sysmon/sysmon.spec b/sysmon/sysmon.spec index 6b3302274b..3913826b38 100644 --- a/sysmon/sysmon.spec +++ b/sysmon/sysmon.spec @@ -67,6 +67,10 @@ AutoReqProv: no %setup -q %build + # force pidfile path + %{l_shtool} subst \ + -e 's;\(#define PIDFILE\).*;\1 "%{l_prefix}/var/sysmon/sysmond.pid";' \ + src/config.h # force use of ncurses echo "ac_cv_lib_curses_refresh=no" >config.cache CC="%{l_cc}" \