#!/bin/sh

########################################################################
#
#		NEC 
#               ver0.4 2006.01.20
########################################################################

###  filename  ###
#RHEL7.0 FPL5014 FPL5015 20140213 line-2+2 
#DAEMONFILES="ntagent ESMps ESMIS ESMlogmon ESMcmn ESMsmsrv ESMlan ESMfilesys ESMpowsw ESMstrg ESMmlx ESMftreport ESMamvmain ESMntserver"
DAEMONFILES="ntagent ESMps ESMIS ESMlogmon ESMcmn ESMsmsrv ESMlan ESMfilesys ESMstrg ESMftreport ESMamvmain ESMntserver"
#DAEMONFILES1="ESMntserver ESMamvmain ESMftreport ESMmlx ESMstrg ESMpowsw ESMfilesys ESMlan ESMsmsrv ESMcmn ESMlogmon ESMIS ESMps ntagent"
DAEMONFILES1="ESMntserver ESMamvmain ESMftreport ESMstrg ESMfilesys ESMlan ESMsmsrv ESMcmn ESMlogmon ESMIS ESMps ntagent"
DEFAULT_SA_DIR="/opt/nec/esmpro_sa"
LOG=${DEFAULT_SA_DIR}/log/ESMRestart.log
#RHEL7.0 FPL5001 20140128 line+4
RETVAL=0
COL_STATUS="echo -en \\033[60G"
PEINT_OK="[ \\033[1;32m OK \\033[0;39m ]"
PEINT_FAILED="[\\033[1;31mFAILED\\033[0;39m]"
########################################################################

usage()
{
	echo -e "Usage:"
	echo -e "\t`basename $0` [stop|start]\n"
	echo -e "\t`basename $0`\t: Restart"
	echo -e "\t`basename $0` start: Start"
	echo -e "\t`basename $0` stop\t: Stop\n"
	exit 0
}

exe()
{
	ACTION="$1"
	OBJECT="$2"
	case ${ACTION} in
		"stop")
			case ${OBJECT} in
				"SADAEMON")
					LIST="${DAEMONFILES}"
					;;
				#FPL3001 for Linux RHEL6.1 20110513 Lline-6
				#"snmpd")
				#	LIST="${OBJECT}"
				#	;;
				#20070822 for 320Fc line+3
				#"ft-snmp")
				#	LIST="${OBJECT}"
				#	;;
				*)
					LIST=""
					;;
			esac
			;;
		"start")
			case ${OBJECT} in
				"SADAEMON")
					LIST="${DAEMONFILES1}"
					;;
				#FPL3001 for Linux RHEL6.1 20110513 Lline-6
				#"snmpd")
				#	LIST="${OBJECT}"
				#	;;
				#20070822 for 320Fc line+3
				#"ft-snmp")
				#	LIST="${OBJECT}"
				#	;;
				*)
					LIST=""
					;;
			esac
			;;
		*)
			return 1
			;;
	esac
	
	#RHEL7.0 FPL5001 20140128   begin
	if [ -f /usr/bin/systemctl ] && [ -f /usr/lib/systemd/system/ESMntserver.service ]; then
		for daemonname in ${LIST} ; do
			if [ -f /usr/lib/systemd/system/${daemonname}.service ] ; then
				/usr/bin/systemctl is-enabled ${daemonname}.service >> ${LOG}  2>&1
				if [ 0 -eq $? ] ; then
					/usr/bin/systemctl  ${ACTION} ${daemonname}.service >> ${LOG}  2>&1
					RETVAL=$?
					if [ "${ACTION}" = "start" ] ; then
						echo -n $"Starting ${daemonname}:"
					else
						echo -n $"Stopping ${daemonname}:"
					fi
					$COL_STATUS
					if [ $RETVAL -eq 0 ] ; then
						echo -e $PEINT_OK
					else
						echo -e $PEINT_FAILED
					fi
				else 
					echo "systemctl ${daemonname}.service error:$?">>${LOG}
				fi
			fi
		done
	#if [ -f /sbin/service ] ; then
	elif [ -f /sbin/service ] ; then
	#RHEL7.0 FPL5001 20140128  end
		for daemonname in ${LIST} ; do
			#SLES10/RHEL5 20070116 : line -1+5 : for suse10 support	
			#/sbin/chkconfig ${daemonname} 2>>${LOG}
			if [ -f /etc/SuSE-release ];then
				/sbin/chkconfig -c ${daemonname} 2>>${LOG}
			else
				/sbin/chkconfig ${daemonname} 2>>${LOG}
			fi
			if [ 0 -eq $? ] ; then
				/sbin/service ${daemonname} "${ACTION}"
			else
				echo "chkconfig ${daemonname} error">>${LOG}
			fi
		done
	else
		LEVEL="`/sbin/runlevel 2>>${LOG}|/bin/awk '{print $2}' 2>>${LOG}`"||LEVEL=3
		for daemons in ${LIST} ; do
			daemonname="`/usr/bin/find /etc/rc.d/rc${LEVEL}.d/ -name S[[:digit:]]*${daemons} 2>>${LOG}`"
			if [ -f "${daemonname}" ] ; then
				${daemonname} "${ACTION}"
			else
				echo "no such file: ${daemonname}" >>${LOG}
			fi
		done
	fi
}

stop()
{
	#FPL3001 for Linux RHEL6.1 20110513 Lline-8
	#flag="$1"
	#if [ "${flag}" = "all" ] ; then
	#20070822 Line+3 for 320Fc
	#	if [ -f "/etc/rc.d/init.d/ft-snmp" ]; then
	#		exe "stop" "ft-snmp"
	#	else	
	#		exe "stop" "snmpd"
	#	fi
	#fi
	exe "stop" "SADAEMON"
}

start()
{
	#FPL3001 for Linux RHEL6.1 20110513 Lline-8
	#flag="$1"
	exe "start" "SADAEMON"
	#if [ "${flag}" = "all" ] ; then
	#20070822 Line+3 for 320Fc
	#	if [ -f "/etc/rc.d/init.d/ft-snmp" ]; then
	#		exe "start" "ft-snmp"
	#	else
	#		exe "start" "snmpd"
	#	fi
	#fi
}

title()
{
	clear
	echo -e "#########################  Restart Program  ########################\n"
}

/bin/date >>${LOG}
if [ $UID != 0 ] ; then
	/bin/echo -e "\nThis program could be executed by root Only.\n"
	exit
fi
if [ $# = 0 ] ; then
	title
	stop "all"
	sleep 3
	start "all"
elif [ $# = 1 ] ; then
	case $1 in
		"stop")
			title
			stop "all"
			;;
		"start")
			title
			start "all"
			;;
		"restart")
			title
			stop "all"
			sleep 3
			start "all"
			;;
		*)
			usage
			;;
	esac
else
	usage
fi
