#!/bin/sh
#****************************************************************
# *	Copyright (C) 2003, Wistron Inc.  All Rights Reserved.
# *	File Name:		wprocdagent
# *	Author:			Jerry Zhou
# *	Create Time: 	2003-08-14 17:18:49
# *	Last Update: 	2003-08-14 17:18:49
#****************************************************************
proc_list="snmpd agentMain asm6pagt"
armc_server=/etc/init.d/armc_server
wasm6p_server=/etc/init.d/wasm6p_server
snmp_server=/etc/init.d/snmpd
lock_file=/var/lock/subsys/wprocd
prepid=nonepid

keep_proc_run()
{
	for i in $proc_list
	do
		if ps -A | grep $i 1>/dev/null 2>/dev/null ; then
			continue
		else
			if [ -e $armc_server ] ; then
				$armc_server stop 1>/dev/null 2>/dev/null
			fi
			if [ -e $wasm6p_server ] ; then
				$wasm6p_server stop 1>/dev/null 2>/dev/null
			fi
			if [ -e $snmp_server ] ; then
				$snmp_server stop 1>/dev/null 2>/dev/null
			fi
			if [ -e $wasm6p_server ] ; then
				sleep 1
				$wasm6p_server start 1>/dev/null 2>/dev/null
			fi
			if [ -e $armc_server ] ; then
				sleep 2
				$armc_server start 1>/dev/null 2>/dev/null
			fi
			break
		fi
	done
}

if [ -e $lock_file ] ; then
	prepid=`cat $lock_file`
	if [ -z prepid ] ; then
		prepid=nonepid
	fi
fi
if ps -A|grep $prepid 1>/dev/null 2>/dev/null ; then
	exit 0
else
	echo $$ > $lock_file 2>/dev/null
	while true
	do
		keep_proc_run
		sleep 30
	done
fi
exit 0