%PDF- %PDF- 403WebShell
403Webshell
Server IP : 79.170.40.229  /  Your IP : 3.147.242.38
Web Server : Apache
System : Linux web232.extendcp.co.uk 4.18.0-513.24.1.el8_9.x86_64 #1 SMP Mon Apr 8 11:23:13 EDT 2024 x86_64
User : 1stforcarhirealicante.com ( 296923)
PHP Version : 5.6.40
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/thread-self/root/etc/init.d/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/root/etc/init.d/dataeng
#!/bin/sh
###############################################################################
#
#          Dell Inc. PROPRIETARY INFORMATION
# This software is supplied under the terms of a license agreement or
# nondisclosure agreement with Dell Inc. and may not
# be copied or disclosed except in accordance with the terms of that
# agreement.
#
# Copyright (c) 2000-2011 Dell Inc. All Rights Reserved.
#
# Module Name:
#
#   dataeng
#
# Abstract/Purpose:
#
#   Systems Management Data Engine init script
#
# Environment:
#
#   Linux
#
# Following two lines used by chkconfig utility:
# chkconfig: 35 96 04
# description: Systems Management Data Engine
#
### BEGIN INIT INFO
# Provides: dataeng
# Should-Start: instsvcdrv fluid_cache
# Required-Start: $localfs $remotefs $syslog
# Required-Stop: $localfs $remotefs $syslog
# Should-Stop: instsvcdrv fluid_cache
# Default-Start: 3 5
# Default-Stop: 1 2
# Short-Description: Systems Management Data Engine
# Description: Systems Management Data Engine
### END INIT INFO
#
###############################################################################

DENG_PROD_NAME="Systems Management Data Engine"
DENG_SCRIPT_NAME="dataeng"
DENG_DEFAULT_INSTALL_DIR="/opt/dell/srvadmin"

# Make sure HOSTTYPE is set
[ -z "${HOSTTYPE}" ] && HOSTTYPE=$(uname -m)

# OS information
OM_INITSCRIPT_DIR="/etc/rc.d/init.d"
OS_INITSCRIPT_DIR="/etc/init.d"
OS_SUBSYS_LOCK_DIR="/var/lock/subsys/"
OS_SCRIPT_FUNCTIONS_LSB="/lib/lsb/init-functions"
OS_SCRIPT_FUNCTIONS_RH="/etc/init.d/functions"
OS_SCRIPT_FUNCTIONS_NONE="none"
OS_SNMP_SVCNAME="snmpd"
OS_SNMP_SCRIPT="${OS_INITSCRIPT_DIR}/${OS_SNMP_SVCNAME}"

# Check for supported OS script functions
if [ -f ${OS_SCRIPT_FUNCTIONS_RH} ];
then
	OS_SCRIPT_FUNCTIONS=${OS_SCRIPT_FUNCTIONS_RH}
elif [ -f ${OS_SCRIPT_FUNCTIONS_LSB} ];
then
	OS_SCRIPT_FUNCTIONS=${OS_SCRIPT_FUNCTIONS_LSB}
else
	OS_SCRIPT_FUNCTIONS=${OS_SCRIPT_FUNCTIONS_NONE}
fi

# Include OS script functions if available
if [ ${OS_SCRIPT_FUNCTIONS} != ${OS_SCRIPT_FUNCTIONS_NONE} ];
then
	. ${OS_SCRIPT_FUNCTIONS}
fi

if [ "$(uname -s)" = "VMkernel" ];
then
	OS_KERNEL_VMKERNEL=1
else
	OS_KERNEL_VMKERNEL=0
fi

# omreg config file variables
OM_INSTALL_FILE="/opt/dell/srvadmin/etc/srvadmin-omilcore/install.ini"
OM_REG_FILE="/opt/dell/srvadmin/etc/omreg.cfg"
OMDATAENG_INSTALLPATH_KEY="OMDataEngine.installpath"
OMDATAENG_STARTSNMPD_KEY="OMDataEngine.startsnmpd"
OMDATAENG_SHOULDSTART_SVCLIST_KEY="OMDataEngine.shouldstart.servicelist"

DENG_DAEMON_DIR="/opt/dell/srvadmin/sbin"
DENG_FWSNMP_SCRIPT="/opt/dell/srvadmin/lib64/srvadmin-deng/dcfwsnmp.sh"
DENG_FWSNMP_OFF_FILE="/opt/dell/srvadmin/var/lib/srvadmin-deng/dcfwsnmp.off"
DENG_DCSNMP_OFF_FILE="/opt/dell/srvadmin/var/lib/srvadmin-deng/dcsnmp.off"
DENG_LOCK_FILE="${OS_SUBSYS_LOCK_DIR}/${DENG_SCRIPT_NAME}"
DENG_LD_LIBRARY_PATH_SET=0

OMIL_SYSCHECK_SCRIPT="/opt/dell/srvadmin/sbin/CheckSystemType"
OMIL_SYSCHECK_SCRIPT_LOADED=0

# Systems Management Device Drivers variables
ISVCDD_SCRIPT="${OM_INITSCRIPT_DIR}/instsvcdrv"

# Script messages
DENG_MSG_DE_SNMP_ENABLED="Data Engine SNMP enabled"
DENG_MSG_DE_SNMP_DISABLED="Data Engine SNMP disabled"
DENG_MSG_DE_SNMP_NOTINSTALLED="Data Engine SNMP not installed"
DENG_MSG_OS_FIREWALL_SNMP_1="WARNING: The SNMP port appears to be closed by the firewall."
DENG_MSG_OS_FIREWALL_SNMP_2="You may not be able to manage this system remotely using SNMP."
DENG_MSG_OS_FIREWALL_SNMP_3="See Firewall Configuration in the product user's guide."
DENG_MSG_OS_SNMP_NOTINSTALLED="OS SNMP support not installed"
DENG_MSG_OS_SNMP_NOTSTARTED_1="warning: ${OS_SNMP_SVCNAME} not started."
DENG_MSG_OS_SNMP_NOTSTARTED_2="${OS_SNMP_SVCNAME} must be started to manage this system using SNMP."

# Standard status codes for commands other than "status"
STATUS_NO_ERROR=0
STATUS_GENERIC_ERROR=1
STATUS_INVALID_ARG=2
STATUS_NOT_IMPLEMENTED=3

# Data Engine status codes for commands other than "status"
STATUS_OS_SNMP_NOT_FOUND=250
STATUS_DE_SNMP_NOT_FOUND=251
STATUS_SYSTEM_NOT_SUPPORTED=252

# Standard status codes for "status" command
STATUS_RUNNING=0
STATUS_DEAD_PIDFILE_EXISTS=1
STATUS_DEAD_LOCKFILE_EXISTS=2
STATUS_NOT_RUNNING=3
STATUS_UNKNOWN=4

# Default to no daemons enabled
DENG_DAEMON_ALL_LIST=""
DENG_DAEMON_START_LIST=""
DENG_DAEMON_STOP_LIST=""
DENG_DAEMONS_ENABLED=0
DENG_DCSNMP_INSTALLED=0
DENG_DCSNMP_ENABLED=0

# If DE SNMP is not installed we should not try to start snmp service and report error
	# First clean up
	
	grep -q "^SNMP=disable" $OM_INSTALL_FILE
	if [ $? = ${STATUS_RUNNING} ];
	then
		#touch the off file
		touch $DENG_DCSNMP_OFF_FILE
	fi

# Check for Data Manager
	DENG_DCSTOR="dsm_sa_datamgrd"
		DENG_DAEMON_ALL_LIST="${DENG_DAEMON_ALL_LIST} ${DENG_DCSTOR}"
		DENG_DAEMON_START_LIST="${DENG_DAEMON_START_LIST} ${DENG_DCSTOR}"
		DENG_DAEMON_STOP_LIST="${DENG_DCSTOR} ${DENG_DAEMON_STOP_LIST}"
		DENG_DAEMONS_ENABLED=1

# Check for Event Plug-in Manager
	DENG_DCEVT="dsm_sa_eventmgrd"
		DENG_DAEMON_ALL_LIST="${DENG_DAEMON_ALL_LIST} ${DENG_DCEVT}"
		DENG_DAEMON_START_LIST="${DENG_DCEVT} ${DENG_DAEMON_START_LIST}"
		DENG_DAEMON_STOP_LIST="${DENG_DAEMON_STOP_LIST} ${DENG_DCEVT}"
		DENG_DAEMONS_ENABLED=1

# Check for SNMP Plug-in Manager
	DENG_DCSNMP="dsm_sa_snmpd"
		DENG_DAEMON_ALL_LIST="${DENG_DAEMON_ALL_LIST} ${DENG_DCSNMP}"
		DENG_DCSNMP_INSTALLED=1

		# Check if Data Engine SNMP disabled
		if [ ! -f ${DENG_DCSNMP_OFF_FILE} ];
		then
			DENG_DAEMON_START_LIST="${DENG_DAEMON_START_LIST} ${DENG_DCSNMP}"
			DENG_DAEMON_STOP_LIST="${DENG_DCSNMP} ${DENG_DAEMON_STOP_LIST}"
			DENG_DAEMONS_ENABLED=1
			DENG_DCSNMP_ENABLED=1
		fi


###############################################################################
# Begin Functions
###############################################################################


###############################################################################
# Function:    dataeng_start
# Description: Start Data Engine daemons
# Returns:     LSB status codes
###############################################################################
dataeng_start()
{
	local msg status

	# Check if system supported
	dataeng_check_system_type
	status=$?
	if [ ${status} != ${STATUS_NO_ERROR} ];
	then
		echo "Starting ${DENG_PROD_NAME}:"
		msg="Failed to start because system is not supported"
		echo "${msg}"
		dataeng_supt_logmessage "${DENG_PROD_NAME}: ${msg}"
		return ${status}
	fi

	# Check if any Data Engine daemons are enabled
	if [ ${DENG_DAEMONS_ENABLED} = 0 ];
	then
		echo "Starting ${DENG_PROD_NAME}:"
		echo "No daemons enabled"
		return ${STATUS_NO_ERROR}
	fi

	# Start any soft dependencies
	dataeng_start_softdep_services

	# Check if Data Engine SNMP is enabled
	if [ ${DENG_DCSNMP_ENABLED} = 1 ];
	then
		# Check if SNMP agent started
		dataeng_supt_daemonstatus ${OS_SNMP_SVCNAME} >/dev/null
		if [ $? != ${STATUS_RUNNING} ];
		then
			# Check config file to see if it's OK
			# to start the SNMP agent
			if [ -f ${OM_REG_FILE} ];
			then
				LOC_STARTSNMPD=`grep "^${OMDATAENG_STARTSNMPD_KEY}=" ${OM_REG_FILE} | \
					sed "s/^.*=//"`
			fi

			# Start SNMP agent if allowed
			if  [ "${LOC_STARTSNMPD}" != "false" ] &&
				[ "${LOC_STARTSNMPD}" != "FALSE" ];
			then
				[ -x ${OS_SNMP_SCRIPT} ] && ${OS_SNMP_SCRIPT} start
			fi
		fi
	fi

	# Check if Systems Management Device Drivers are installed
	if [ -f ${ISVCDD_SCRIPT} ];
	then
		# Check if Systems Management Device Drivers are started
		${ISVCDD_SCRIPT} status >/dev/null
		if [ $? != 0 ];
		then
			# Start Systems Management Device Drivers
			${ISVCDD_SCRIPT} start
			ISVCDD_STATUS=$?
			if [ ${ISVCDD_STATUS} != ${STATUS_NO_ERROR} ];
			then
				# Device drivers failed to start
				return ${ISVCDD_STATUS}
			fi
		fi
	fi

	echo "Starting ${DENG_PROD_NAME}:"

	# Start any Data Engine daemons that
	# are currently installed and enabled
	for DENG_DAEMON in ${DENG_DAEMON_START_LIST};
	do
		dataeng_startdaemon ${DENG_DAEMON}
	done

	# Check if Data Engine SNMP enabled
	if [ ${DENG_DCSNMP_ENABLED} = 1 ] &&
	   [ ${OS_KERNEL_VMKERNEL} = 0 ];
	then
		# Check if SNMP agent started
		dataeng_supt_daemonstatus ${OS_SNMP_SVCNAME} >/dev/null
		if [ $? = ${STATUS_RUNNING} ];
		then
			# Check if firewall has SNMP port closed
			dataeng_check_fwsnmp
		else
			# SNMP agent not started
			dataeng_supt_logmessage "${DENG_MSG_OS_SNMP_NOTSTARTED_1} ${DENG_MSG_OS_SNMP_NOTSTARTED_2}"
		fi
	fi

	return ${STATUS_NO_ERROR}
} # dataeng_start


###############################################################################
# Function:    dataeng_start_softdep_services
# Description: Start any soft dependent services
# Returns:     None
###############################################################################
dataeng_start_softdep_services()
{
	# Check for omreg config file
	if [ ! -f ${OM_REG_FILE} ];
	then
		return
	fi

	# Check for soft dependent service list
	SVCLIST=$(
		grep "^${OMDATAENG_SHOULDSTART_SVCLIST_KEY}=" ${OM_REG_FILE} | \
		sed "s/^.*=//")
	if [ -z "${SVCLIST}" ];
	then
		return
	fi

	# Start soft dependent services if needed
	for SVCNAME in ${SVCLIST};
	do
		SVCSCRIPT="${OM_INITSCRIPT_DIR}/${SVCNAME}"

		# Prevent recursion
		if [ ${SVCNAME} = ${DENG_SCRIPT_NAME} ];
		then
			continue
		fi

		# Check for service init script
		# NOTE: Soft dependent services are not required to be installed.
		if [ ! -x ${SVCSCRIPT} ];
		then
			continue
		fi

		# Check if service already started
		# NOTE: This script expects service init script
		# to support LSB status codes.
		${SVCSCRIPT} status >/dev/null 2>&1
		if [ $? != ${STATUS_RUNNING} ];
		then
			# Start service
			${SVCSCRIPT} start
			# NOTE: Soft dependent services are not required to start
			# successfully.  Status of start command is ignored.
		fi
	done
} # dataeng_start_softdep_services


###############################################################################
# Function:    dataeng_startdaemon <daemon>
# Description: Start specified daemon
# Returns:     LSB status codes
###############################################################################
dataeng_startdaemon()
{
	local status
	DAEMON="$1"

	# Check for daemon name
	if [ -z ${DAEMON} ];
	then
		echo "${DENG_SCRIPT_NAME}: daemon not specified"
		return ${STATUS_INVALID_ARG}
	fi

	# Check if daemon is Data Engine daemon and installed
	IS_DENG_DAEMON=0
	for DENG_DAEMON in ${DENG_DAEMON_ALL_LIST};
	do
		if [ "${DAEMON}" = "${DENG_DAEMON}" ];
		then
			IS_DENG_DAEMON=1
			break
		fi
	done
	if [ ${IS_DENG_DAEMON} = 0 ];
	then
		echo "${DENG_SCRIPT_NAME}: ${DAEMON} not ${DENG_PROD_NAME} daemon or not installed"
		return ${STATUS_INVALID_ARG}
	fi

	echo -n "Starting ${DAEMON}: "

	DENG_DAEMON_FILE="${DENG_DAEMON_DIR}/${DAEMON}"
	DENG_DAEMON_OPTS=""

	# Check if system supported
	dataeng_check_system_type
	status=$?
	if [ ${status} != ${STATUS_NO_ERROR} ];
	then
		echo -n "System not supported"
		dataeng_supt_showfailure ""
		return ${status}
	fi

	# See if the daemon is running
	dataeng_supt_daemonstatus ${DAEMON} >/dev/null
	if [ $? != ${STATUS_RUNNING} ];
	then
		# Start the daemon
		dataeng_supt_daemonstart "${DENG_DAEMON_FILE}" "${DENG_DAEMON_OPTS}"
	else
		echo -n "Already started"
		dataeng_supt_showsuccess ""
	fi

	# Check if any Data Engine daemons running
	dataeng_status >/dev/null
	if [ $? = ${STATUS_RUNNING} ];
	then
		# Make sure lock file exists
		# when Data Engine daemons are running
		[ -d ${OS_SUBSYS_LOCK_DIR} ] && touch ${DENG_LOCK_FILE}
	fi

	return ${STATUS_NO_ERROR}
} # dataeng_startdaemon


###############################################################################
# Function:    dataeng_stop
# Description: Stop Data Engine daemons
# Returns:     LSB status codes
###############################################################################
dataeng_stop()
{
	# Check if any Data Engine daemons are enabled
	if [ ${DENG_DAEMONS_ENABLED} = 0 ];
	then
		echo "Stopping ${DENG_PROD_NAME}:"
		echo "No daemons enabled"
		return ${STATUS_NO_ERROR}
	fi

	echo "Stopping ${DENG_PROD_NAME}:"

	# Stop Data Engine daemons that are running
	for DENG_DAEMON in ${DENG_DAEMON_STOP_LIST};
	do
		dataeng_stopdaemon ${DENG_DAEMON}
	done

	return ${STATUS_NO_ERROR}
} # dataeng_stop


###############################################################################
# Function:    dataeng_stopdaemon <daemon>
# Description: Stop specified daemon
# Returns:     LSB status codes
###############################################################################
dataeng_stopdaemon()
{
	DAEMON="$1"

	# Check for daemon name
	if [ -z ${DAEMON} ];
	then
		echo "${DENG_SCRIPT_NAME}: daemon not specified"
		return ${STATUS_INVALID_ARG}
	fi

	# Check if daemon is Data Engine daemon and installed
	IS_DENG_DAEMON=0
	for DENG_DAEMON in ${DENG_DAEMON_ALL_LIST};
	do
		if [ "${DAEMON}" = "${DENG_DAEMON}" ];
		then
			IS_DENG_DAEMON=1
			break
		fi
	done
	if [ ${IS_DENG_DAEMON} = 0 ];
	then
		echo "${DENG_SCRIPT_NAME}: ${DAEMON} not ${DENG_PROD_NAME} daemon or not installed"
		return ${STATUS_INVALID_ARG}
	fi

	echo -n "Stopping ${DAEMON}: "

	# See if the daemon is running
	dataeng_supt_daemonstatus ${DAEMON} >/dev/null
	if [ $? = ${STATUS_RUNNING} ];
	then
		# Stop the daemon
		dataeng_supt_daemonstop ${DAEMON}
	else
		echo -n "Not started"
		dataeng_supt_showfailure ""
	fi

	# Check if any Data Engine daemons still running
	dataeng_status >/dev/null
	if [ $? = ${STATUS_NOT_RUNNING} ];
	then
		# Make sure lock file removed when
		# no Data Engine daemons are running
		[ -d ${OS_SUBSYS_LOCK_DIR} ] && rm -f ${DENG_LOCK_FILE}
	fi

	return ${STATUS_NO_ERROR}
} # dataeng_stopdaemon


###############################################################################
# Function:    dataeng_status
# Description: Get status of Data Engine daemons
# Returns:     LSB status codes
###############################################################################
dataeng_status()
{
	DENG_STATUS=${STATUS_NOT_RUNNING}

	# Check if any Data Engine daemons are enabled
	if [ ${DENG_DAEMONS_ENABLED} = 1 ];
	then
		# Get status of Data Engine daemons
		for DENG_DAEMON in ${DENG_DAEMON_START_LIST};
		do
			dataeng_supt_daemonstatus ${DENG_DAEMON}
			if [ $? = ${STATUS_RUNNING} ];
			then
				DENG_STATUS=${STATUS_RUNNING}
			fi
		done
	fi

	return ${DENG_STATUS}
} # dataeng_status


###############################################################################
# Function:    dataeng_check_system_type
# Description: Check if system supported
# Returns:     LSB status codes
###############################################################################
dataeng_check_system_type()
{
	if [ -f ${OMIL_SYSCHECK_SCRIPT} ];
	then
		if [ ${OMIL_SYSCHECK_SCRIPT_LOADED} = 0 ];
		then
			. ${OMIL_SYSCHECK_SCRIPT}
			OMIL_SYSCHECK_SCRIPT_LOADED=1
		fi

		IsThisSupportedGeneration
		if [ $? != 0 ];
		then
			return ${STATUS_SYSTEM_NOT_SUPPORTED}
		fi
	fi

	return ${STATUS_NO_ERROR}
} # dataeng_check_system_type


###############################################################################
# Function:    dataeng_check_fwsnmp
# Description: Check status of SNMP port in OS firewall configuration
# Returns:     0 = SNMP port is open, non-zero = SNMP port is closed
###############################################################################
dataeng_check_fwsnmp()
{
	# See if check has been disabled by the user
	if [ -f ${DENG_FWSNMP_OFF_FILE} ];
	then
		return 0
	fi

	# Check SNMP port in firewall
	${DENG_FWSNMP_SCRIPT}
	FWSNMP_STATUS=$?
	if [ ${FWSNMP_STATUS} != 0 ];
	then
		# It looks like the SNMP port is closed.  Warn the user.
		echo ""
		echo ${DENG_MSG_OS_FIREWALL_SNMP_1}
		echo ${DENG_MSG_OS_FIREWALL_SNMP_2}
		echo ${DENG_MSG_OS_FIREWALL_SNMP_3}

		dataeng_supt_logmessage "${DENG_MSG_OS_FIREWALL_SNMP_1} ${DENG_MSG_OS_FIREWALL_SNMP_2} ${DENG_MSG_OS_FIREWALL_SNMP_3}"
	fi

	return ${FWSNMP_STATUS}
} # dataeng_check_fwsnmp


###############################################################################
# Function:    dataeng_set_os_snmp_conf_vars
# Description: Set variables needed to update OS SNMP configuration file
# Returns:     none
###############################################################################
dataeng_set_os_snmp_conf_vars()
{
	OS_SNMP_CONF_FILE_1="/etc/snmp/snmpd.conf"
	OS_SNMP_CONF_FILE_2="/etc/snmpd.conf"
	OS_SNMP_CONF_FILE_3="/etc/ucdsnmpd.conf"
	OS_SNMP_CONF_VIEW_SYS_CHK_1="^view.*systemview.*included.*system$"
	OS_SNMP_CONF_VIEW_SYS_CHK_2="^view.*systemview.*included[ 	]*\.1.3.6.1.2.1.1$"
	OS_SNMP_CONF_VIEW_ALL_CHK="^view.*all.*included.*\.1"
	OS_SNMP_CONF_VIEW_ALL_ADD="view    all            included      .1"
	OS_SNMP_CONF_ACCESS_SYS_CHK="^access.*notConfigGroup.*any.*noauth.*exact.*systemview.*none.*none$"
	OS_SNMP_CONF_ACCESS_ALL_CHK="^access.*notConfigGroup.*any.*noauth.*exact.*all"
	OS_SNMP_CONF_ACCESS_ALL_ADD="access  notConfigGroup \"\"      any       noauth    exact  all    none   none"
	OS_SNMP_CONF_COMMENT_OLD_1="# Allow Dell OpenManage Server Agent to connect to ucd-snmp using SMUX"
	OS_SNMP_CONF_COMMENT_OLD_2="# Allow Server Administrator to connect to ucd-snmp using SMUX"
	OS_SNMP_CONF_COMMENT_DENG="# Allow Systems Management Data Engine SNMP to connect to snmpd using SMUX"
	OS_SNMP_CONF_SMUXPEER_DENG_CHK="smuxpeer.*\.1\.3\.6\.1\.4\.1\.674\.10892\.1"
	OS_SNMP_CONF_SMUXPEER_DENG_ADD="smuxpeer .1.3.6.1.4.1.674.10892.1"

	# check for OS SNMP configuration file
	# (different Linux distros put file in different locations)
	if [ -f ${OS_SNMP_CONF_FILE_1} ];
	then
		OS_SNMP_CONF_FILE=${OS_SNMP_CONF_FILE_1}
	elif [ -f ${OS_SNMP_CONF_FILE_2} ];
	then
		OS_SNMP_CONF_FILE=${OS_SNMP_CONF_FILE_2}
	elif [ -f ${OS_SNMP_CONF_FILE_3} ];
	then
		OS_SNMP_CONF_FILE=${OS_SNMP_CONF_FILE_3}
	else
		OS_SNMP_CONF_FILE=""
	fi
} # dataeng_set_os_snmp_conf_vars


###############################################################################
# Function:    dataeng_enablesnmp
# Description: enable Data Engine SNMP
# Returns:     STATUS_NO_ERROR = Data Engine SNMP installed and enabled
#              STATUS_OS_SNMP_NOT_FOUND = OS SNMP support not installed
#              STATUS_DE_SNMP_NOT_FOUND = Data Engine SNMP not installed
###############################################################################
dataeng_enablesnmp()
{
	# check for OS SNMP agent and set configuration variables
	dataeng_set_os_snmp_conf_vars

	# check if OS SNMP support is installed
	if [ -z ${OS_SNMP_CONF_FILE} ];
	then
		# OS SNMP support not installed
		echo ${DENG_MSG_OS_SNMP_NOTINSTALLED}
		dataeng_supt_logmessage "NOTE: ${DENG_MSG_OS_SNMP_NOTINSTALLED}"

		# mark Data Engine SNMP disabled
		touch ${DENG_DCSNMP_OFF_FILE}

		return ${STATUS_OS_SNMP_NOT_FOUND}
	fi

	# check if Data Engine SNMP is installed
	if [ ${DENG_DCSNMP_INSTALLED} = 0 ];
	then
		# Data Engine SNMP not installed
		echo ${DENG_MSG_DE_SNMP_NOTINSTALLED}
		dataeng_supt_logmessage "NOTE: ${DENG_MSG_DE_SNMP_NOTINSTALLED}"

		# mark Data Engine SNMP disabled
		touch ${DENG_DCSNMP_OFF_FILE}

		return ${STATUS_DE_SNMP_NOT_FOUND}
	fi

	# OS SNMP and Data Engine SNMP installed;
	# make needed updates to OS SNMP configuration
	NEW_CONF_FILE="${OS_SNMP_CONF_FILE}.${DENG_SCRIPT_NAME}"
	SNMP_CONF_FILE_UPDATED=0

	# check for "view" for whole MIB tree
	egrep -i "${OS_SNMP_CONF_VIEW_ALL_CHK}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? != 0 ];
	then
		# determine line to add new "view" after
		# by looking for existing well-known "view"
		egrep -i "${OS_SNMP_CONF_VIEW_SYS_CHK_1}" ${OS_SNMP_CONF_FILE} >/dev/null
		if [ $? = 0 ];
		then
			VIEW_CHK="${OS_SNMP_CONF_VIEW_SYS_CHK_1}"
		else
			egrep -i "${OS_SNMP_CONF_VIEW_SYS_CHK_2}" ${OS_SNMP_CONF_FILE} >/dev/null
			if [ $? = 0 ];
			then
				VIEW_CHK="${OS_SNMP_CONF_VIEW_SYS_CHK_2}"
			else
				VIEW_CHK=""
			fi
		fi

		# check if well-known "view" was found
		if [ ! -z "${VIEW_CHK}" ];
		then
			# create sed script to add "view" for whole MIB tree
			TMP_FILE=$(mktemp ${TMP:-/tmp}/${DENG_SCRIPT_NAME}.XXXXXXX)
			if [ $? = 0 ];
			then
				echo "/${VIEW_CHK}/i\\"             >>${TMP_FILE}
				echo "${OS_SNMP_CONF_VIEW_ALL_ADD}" >>${TMP_FILE}

				# add "view" for whole MIB tree
				sed -f ${TMP_FILE} ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
				mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
				rm -f ${TMP_FILE}

				SNMP_CONF_FILE_UPDATED=1
			else
				echo "${DENG_SCRIPT_NAME}: mktemp failed to make filename"
			fi
		fi
	fi

	# check for "access" to whole MIB tree for default group
	egrep -i "${OS_SNMP_CONF_ACCESS_ALL_CHK}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? != 0 ];
	then
		# check for default "access" configuration
		egrep -i "${OS_SNMP_CONF_ACCESS_SYS_CHK}" ${OS_SNMP_CONF_FILE} >/dev/null
		if [ $? = 0 ];
		then
			# change default "access" configuration to allow
			# access to whole MIB tree for default group
			sed "s/${OS_SNMP_CONF_ACCESS_SYS_CHK}/${OS_SNMP_CONF_ACCESS_ALL_ADD}/" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
			mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}

			SNMP_CONF_FILE_UPDATED=1
		fi
	fi

	# check for Data Engine SNMP "smuxpeer" entry
	egrep -i "${OS_SNMP_CONF_SMUXPEER_DENG_CHK}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? != 0 ];
	then
		# add blank line if needed
		LAST_LINE=""
		while read LINE;
		do
			LAST_LINE="${LINE}"
		done < ${OS_SNMP_CONF_FILE}
		if [ "${LAST_LINE}" != "" ];
		then
			echo "" >>${OS_SNMP_CONF_FILE}
		fi

		# add Data Engine SNMP "smuxpeer" entry
		echo "${OS_SNMP_CONF_COMMENT_DENG}" >>${OS_SNMP_CONF_FILE}
		echo "${OS_SNMP_CONF_SMUXPEER_DENG_ADD}" >>${OS_SNMP_CONF_FILE}

		SNMP_CONF_FILE_UPDATED=1
	else
		# check if "smuxpeer" comment needs to be updated
		egrep -i "${OS_SNMP_CONF_COMMENT_OLD_1}" ${OS_SNMP_CONF_FILE} >/dev/null
		if [ $? = 0 ];
		then
			# update "smuxpeer" comment
			sed "s/${OS_SNMP_CONF_COMMENT_OLD_1}/${OS_SNMP_CONF_COMMENT_DENG}/" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
			mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
		else
			egrep -i "${OS_SNMP_CONF_COMMENT_OLD_2}" ${OS_SNMP_CONF_FILE} >/dev/null
			if [ $? = 0 ];
			then
				# update "smuxpeer" comment
				sed "s/${OS_SNMP_CONF_COMMENT_OLD_2}/${OS_SNMP_CONF_COMMENT_DENG}/" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
				mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
			fi
		fi
	fi

	# check for simple access control configuration;
	# if simple access control configuration found;
	# try to determine if SNMP access is restricted to localhost
	SIMPLE_ACCESS_CONTROL=0
	LOCALHOST_ONLY=1
	TMP_FILE=$(mktemp ${TMP:-/tmp}/${DENG_SCRIPT_NAME}.XXXXXXX)
	if [ $? = 0 ];
	then
		egrep -i "^r[ow]community6*[[:blank:]]" ${OS_SNMP_CONF_FILE} >>${TMP_FILE} 2>&1
		while read LINE;
		do
			SIMPLE_ACCESS_CONTROL=1
			SOURCE=`echo ${LINE} | awk '{print $3}'`
			if [ "${SOURCE}" != "127.0.0.1" ] &&
			   [ "${SOURCE}" != "localhost" ];
			then
				LOCALHOST_ONLY=0
				break
			fi
		done < ${TMP_FILE}
		rm -f ${TMP_FILE}
	else
		echo "${DENG_SCRIPT_NAME}: mktemp failed to make filename"
	fi

	# check if simple access control configuration used and
	# if SNMP access appears to be restricted to localhost
	if [ ${SIMPLE_ACCESS_CONTROL} = 1 ] &&
	   [ ${LOCALHOST_ONLY} = 1 ];
	then
		# SNMP access appears to be restricted to localhost
		DENG_MSG_OS_SNMP_ACCESS="NOTE: SNMP access appears to be restricted to localhost in ${OS_SNMP_CONF_FILE}"
		echo ${DENG_MSG_OS_SNMP_ACCESS}
		dataeng_supt_logmessage "${DENG_MSG_OS_SNMP_ACCESS}"
	fi

	# check if SNMP config file updated
	if [ ${SNMP_CONF_FILE_UPDATED} = 1 ];
	then
		# check if SNMP agent started
		dataeng_supt_daemonstatus ${OS_SNMP_SVCNAME} >/dev/null
		if [ $? = ${STATUS_RUNNING} ];
		then
			# SNMP agent needs to be restarted
			DENG_MSG_OS_SNMP_RESTART="NOTE: ${OS_SNMP_SVCNAME} must be restarted to activate changes to ${OS_SNMP_CONF_FILE}"
			echo ${DENG_MSG_OS_SNMP_RESTART}
			dataeng_supt_logmessage "${DENG_MSG_OS_SNMP_RESTART}"
		fi
	fi
	
	# check SNMP port in firewall
	dataeng_check_fwsnmp

	# mark Data Engine SNMP enabled
	rm -f ${DENG_DCSNMP_OFF_FILE}
	

	echo ${DENG_MSG_DE_SNMP_ENABLED}

	return ${STATUS_NO_ERROR}
} # dataeng_enablesnmp


###############################################################################
# Function:    dataeng_disablesnmp
# Description: Disable Data Engine SNMP
# Returns:     STATUS_NO_ERROR = Data Engine SNMP installed and disabled
#              STATUS_OS_SNMP_NOT_FOUND = OS SNMP support not installed
#              STATUS_DE_SNMP_NOT_FOUND = Data Engine SNMP not installed
###############################################################################
dataeng_disablesnmp()
{
	# check for OS SNMP agent and set configuration variables
	dataeng_set_os_snmp_conf_vars

	# always mark Data Engine SNMP disabled
	touch ${DENG_DCSNMP_OFF_FILE}

	# check if OS SNMP support is installed
	if [ -z ${OS_SNMP_CONF_FILE} ];
	then
		# OS SNMP support not installed
		echo ${DENG_MSG_OS_SNMP_NOTINSTALLED}
		return ${STATUS_OS_SNMP_NOT_FOUND}
	fi

	# check if Data Engine SNMP is installed
	if [ ${DENG_DCSNMP_INSTALLED} = 0 ];
	then
		# Data Engine SNMP not installed
		echo ${DENG_MSG_DE_SNMP_NOTINSTALLED}
		return ${STATUS_DE_SNMP_NOT_FOUND}
	fi

	# OS SNMP and Data Engine SNMP are installed;
	# make needed updates to OS SNMP configuration
	NEW_CONF_FILE="${OS_SNMP_CONF_FILE}.${DENG_SCRIPT_NAME}"

	# check for Data Engine SNMP "smuxpeer" entry
	egrep -i "${OS_SNMP_CONF_SMUXPEER_DENG_CHK}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? = 0 ];
	then
		# remove Data Engine SNMP "smuxpeer" entry 
		egrep -iv "${OS_SNMP_CONF_SMUXPEER_DENG_CHK}" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
		mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
	fi

	# check for Data Engine SNMP "smuxpeer" comment
	egrep -i "${OS_SNMP_CONF_COMMENT_DENG}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? = 0 ];
	then
		# remove Data Engine SNMP "smuxpeer" comment
		egrep -iv "${OS_SNMP_CONF_COMMENT_DENG}" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
		mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
	fi

	# check for old "smuxpeer" comment
	egrep -i "${OS_SNMP_CONF_COMMENT_OLD_1}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? = 0 ];
	then
		# remove old SNMP "smuxpeer" comment
		egrep -iv "${OS_SNMP_CONF_COMMENT_OLD_1}" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
		mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
	fi

	# check for old "smuxpeer" comment
	egrep -i "${OS_SNMP_CONF_COMMENT_OLD_2}" ${OS_SNMP_CONF_FILE} >/dev/null
	if [ $? = 0 ];
	then
		# remove old SNMP "smuxpeer" comment
		egrep -iv "${OS_SNMP_CONF_COMMENT_OLD_2}" ${OS_SNMP_CONF_FILE} >${NEW_CONF_FILE}
		mv -f ${NEW_CONF_FILE} ${OS_SNMP_CONF_FILE}
	fi

	# stop Data Engine SNMP if started
	dataeng_supt_daemonstatus ${DENG_DCSNMP} >/dev/null
	if [ $? = 0 ];
	then
		dataeng_supt_daemonstop ${DENG_DCSNMP}
	fi
    
	echo ${DENG_MSG_DE_SNMP_DISABLED}

	return ${STATUS_NO_ERROR}
} # dataeng_disablesnmp


###############################################################################
# Function:    dataeng_getsnmpstatus
# Description: Get Data Engine SNMP status
# Returns:     STATUS_NO_ERROR = Data Engine SNMP installed
#              STATUS_OS_SNMP_NOT_FOUND = OS SNMP support not installed
#              STATUS_DE_SNMP_NOT_FOUND = Data Engine SNMP not installed
###############################################################################
dataeng_getsnmpstatus()
{
	# check for OS SNMP agent and set configuration variables
	dataeng_set_os_snmp_conf_vars

	# check if OS SNMP support is installed
	if [ -z ${OS_SNMP_CONF_FILE} ];
	then
		# OS SNMP support not installed
		echo ${DENG_MSG_OS_SNMP_NOTINSTALLED}
		return ${STATUS_OS_SNMP_NOT_FOUND}
	fi

	# check if Data Engine SNMP is installed
	if [ ${DENG_DCSNMP_INSTALLED} = 0 ];
	then
		# Data Engine SNMP not installed
		echo ${DENG_MSG_DE_SNMP_NOTINSTALLED}
		return ${STATUS_DE_SNMP_NOT_FOUND}
	fi

	# OS SNMP and Data Engine SNMP are installed;
	# get Data Engine SNMP status 
	if [ ! -f ${DENG_DCSNMP_OFF_FILE} ];
	then
		echo ${DENG_MSG_DE_SNMP_ENABLED}
	else
		echo ${DENG_MSG_DE_SNMP_DISABLED}
	fi

	return ${STATUS_NO_ERROR}
} # dataeng_getsnmpstatus


###############################################################################
# Function:    dataeng_supt_daemonrunning <daemon> <pid list>
# Description: Check if daemon is running
# Returns:     0 = daemon running, 1 = daemon not running
###############################################################################
dataeng_supt_daemonrunning()
{
	local daemon pidlist

	daemon=$1

	if [ ${OS_KERNEL_VMKERNEL} = 1 ];
	then
		pidlist=$(pidof -o $$ -o ${PPID} -o %PPID -x ${daemon})
		if [ -n "${pidlist}" ];
		then
			return 0
		fi
	else
		pidlist="$2"
		if [ -n "${pidlist}" ];
		then
			for pid in ${pidlist};
			do
				if [ -d /proc/${pid} ];
				then
					return 0
				fi
			done
		fi
	fi

	return 1
} # dataeng_supt_daemonrunning


###############################################################################
# Function:    dataeng_supt_daemonstart <daemon pathfilename> <daemon options>
# Description: Start a daemon
# Returns:     LSB status codes
###############################################################################
dataeng_supt_daemonstart()
{
	DAEMON_PFNAME="$1"
	DAEMON=`basename ${DAEMON_PFNAME}`
	shift

	# set LD_LIBRARY_PATH if needed
	if [ ${OS_KERNEL_VMKERNEL} = 1 ] && [ -d /lib/cim ];
	then
		if [ ${DENG_LD_LIBRARY_PATH_SET} != 1 ];
		then
			export LD_LIBRARY_PATH=/lib/cim:${LD_LIBRARY_PATH}
			DENG_LD_LIBRARY_PATH_SET=1
		fi
	fi

	if [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_RH} ];
	then
		# Start daemon
		daemon "${DAEMON_PFNAME}" $*
		STATUS=$?
		SHOW_STATUS=0
		echo
	else
		# Start daemon
		"${DAEMON_PFNAME}" $*
		if [ $? = 0 ];
		then
			STATUS=${STATUS_NO_ERROR}
		else
			STATUS=${STATUS_GENERIC_ERROR}
		fi
		SHOW_STATUS=1
	fi

	if [ ${SHOW_STATUS} = 1 ];
	then
		# Display and log status
		if [ ${STATUS} = ${STATUS_NO_ERROR} ];
		then
			dataeng_supt_showsuccess ""
			dataeng_supt_logmessage "${DAEMON} startup succeeded"
		else
			dataeng_supt_showfailure ""
			dataeng_supt_logmessage "${DAEMON} startup failed"
		fi
	fi

	return ${STATUS}
} # dataeng_supt_daemonstart


###############################################################################
# Function:    dataeng_supt_daemonstop <daemon>
# Description: Stop a daemon
# Returns:     LSB status codes
###############################################################################
dataeng_supt_daemonstop()
{
	DAEMON="$1"
	STATUS=${STATUS_GENERIC_ERROR}

	# Check for daemon name
	if [ -z ${DAEMON} ];
	then
		return ${STATUS}
	fi

	# Get list of pids for daemon
	PIDLIST=""

	# Check for pid file in standard location
	PIDFILE="/opt/dell/srvadmin/var/run/${DAEMON}.pid"
	if [ -f ${PIDFILE} ];
	then
		# Get list of pids from pid file
		read LINE < ${PIDFILE}
		for PID in ${LINE};
		do
			if [ -d /proc/${PID} ];
			then
				PIDLIST="${PIDLIST} ${PID}"
			fi
		done
	fi

	# Check if list of pids found in pid file
	if [ -z ${PIDLIST} ];
	then
		# Get list of pids using pidof
		PIDLIST=`pidof -o $$ -o ${PPID} -o %PPID -x ${DAEMON}`
	fi

	# Check if list of pids found for daemon
	if [ -n "${PIDLIST}" ];
	then
		# Find pid for main thread; it should be lowest numbered pid
		PIDMAIN=0
		for PID in ${PIDLIST};
		do
			if [ ${PIDMAIN} -eq 0 ] || [ ${PID} -lt ${PIDMAIN} ];
			then
				PIDMAIN=${PID}
			fi
		done

		# Check if pid for main thread found
		if [ ${PIDMAIN} != 0 ];
		then
			# Signal main thread to shutdown
			kill -TERM ${PIDMAIN}
			usleep 100000

			# Wait up to 60 seconds for all daemon threads to go away
			SECS=0
			while [ ${SECS} -lt 60 ];
			do
				if dataeng_supt_daemonrunning "${DAEMON}" "${PIDLIST}";
				then
					# At least one daemon thread is still running
					sleep 1
					SECS=$((SECS + 1))
				else
					# No daemon threads are running
					break
				fi
			done

			# Check again in case timeout occurred
			if dataeng_supt_daemonrunning "${DAEMON}" "${PIDLIST}";
			then
				# Refresh list of pids and issue KILL for all remaining threads
				PIDLIST=`pidof -o $$ -o ${PPID} -o %PPID -x ${DAEMON}`
				kill -KILL ${PIDLIST}
				usleep 100000
			fi

			# Check again for return code
			dataeng_supt_daemonrunning "${DAEMON}" "${PIDLIST}"
			if [ $? != 0 ];
			then
				# No daemon threads are running
				STATUS=${STATUS_NO_ERROR}
			fi
		fi
	fi

	# Display and log status
	if [ ${STATUS} = ${STATUS_NO_ERROR} ];
	then
		dataeng_supt_showsuccess ""
		dataeng_supt_logmessage "${DAEMON} shutdown succeeded"
	else
		dataeng_supt_showfailure ""
		dataeng_supt_logmessage "${DAEMON} shutdown failed"
	fi

	return ${STATUS}
} # dataeng_supt_daemonstop


###############################################################################
# Function:    dataeng_supt_daemonstatus <daemon>
# Description: Get current status of a daemon
# Returns:     LSB status code
###############################################################################
dataeng_supt_daemonstatus()
{
	DAEMON="$1"

	# Check for daemon name
	if [ -z ${DAEMON} ];
	then
		return ${STATUS_UNKNOWN}
	fi

	# Get list of pids using pidof
	PIDLIST=`pidof -o $$ -o ${PPID} -o %PPID -x ${DAEMON}`
	if [ -n "${PIDLIST}" ];
	then
		echo "${DAEMON} (pid ${PIDLIST}) is running"
		return ${STATUS_RUNNING}
	fi

	# Check for pid file in standard location
	PIDFILE="/opt/dell/srvadmin/var/run/${DAEMON}.pid"
	if [ -f ${PIDFILE} ];
	then
		echo "${DAEMON} is dead and /opt/dell/srvadmin/var/run pid file exists"
		return ${STATUS_DEAD_PIDFILE_EXISTS}
	fi

	# Check for lock file in standard location
	LOCKFILE="${OS_SUBSYS_LOCK_DIR}/${daemon}"
	if [ -f ${LOCKFILE} ];
	then
		echo "${DAEMON} is dead and /opt/dell/srvadmin/var/lock lock file exists"
		return ${STATUS_DEAD_LOCKFILE_EXISTS}
	fi

	echo "${DAEMON} is stopped"
	return ${STATUS_NOT_RUNNING}
} # dataeng_supt_daemonstatus


###############################################################################
# Function:    dataeng_supt_showsuccess <message>
# Description: Display service success message
# Returns:     none
###############################################################################
dataeng_supt_showsuccess()
{
	MSG="$1"

	if [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_LSB} ];
	then
		log_success_msg "${MSG}"
	elif [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_RH} ];
	then
		echo -n "${MSG}"
		echo_success
		echo
	else
		echo -n "${MSG}"
		echo -en \\033[45G
		echo "OK"
	fi
} # dataeng_supt_showsuccess


###############################################################################
# Function:    dataeng_supt_showfailure <message>
# Description: Display service failure message
# Returns:     none
###############################################################################
dataeng_supt_showfailure()
{
	MSG="$1"

	if [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_LSB} ];
	then
		log_failure_msg "${MSG}"
	elif [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_RH} ];
	then
		echo -n "${MSG}"
		echo_failure
		echo
	else
		echo -n "${MSG}"
		echo -en \\033[45G
		echo "FAILED"
	fi
} # dataeng_supt_showsuccess


###############################################################################
# Function:    dataeng_supt_showwarning <message>
# Description: Display service warning message
# Returns:     none
###############################################################################
dataeng_supt_showwarning()
{
	MSG="$1"

	if [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_LSB} ];
	then
		log_warning_msg "${MSG}"
	elif [ ${OS_SCRIPT_FUNCTIONS} = ${OS_SCRIPT_FUNCTIONS_RH} ];
	then
		echo -n "${MSG}"
		echo_warning
		echo
	else
		echo -n "${MSG}"
		echo -en \\033[45G
		echo "WARNING"
	fi
} # dataeng_supt_showwarning


###############################################################################
# Function:    dataeng_supt_logmessage <message>
# Description: Log message to OS log
# Returns:     none
###############################################################################
dataeng_supt_logmessage()
{
	MSG="$1"

	# Log message to OS log
	logger -t "${DENG_SCRIPT_NAME}" "${MSG}"
} # dataeng_supt_logmessage


###############################################################################
# End Functions
###############################################################################


###############################################################################
# Check command line parameter for action to perform
###############################################################################

case "$1" in
	start)
		# start service
		dataeng_start
		EXIT_STATUS=$?
		;;

	stop)
		# stop service
		dataeng_stop
		EXIT_STATUS=$?
		;;

	restart|force-reload)
		# restart service
		dataeng_stop
		dataeng_start
		EXIT_STATUS=$?
		;;

	status)
		# print and return current status of service
		dataeng_status
		EXIT_STATUS=$?
		;;

	status-quiet)
		# return current status of service
		dataeng_status >/dev/null
		EXIT_STATUS=$?
		;;

	statusreturnlsb)
		# return 0 to indicate that the return values returned by the "status"
		# and "status-quiet" commands follow the LSB standard.
		# previous versions of this script that were not standard will return
		# a 1 because this command was not supported in such versions.
		EXIT_STATUS=0
		;;

	reload)
		# reload configuration
		echo "${DENG_SCRIPT_NAME}: reload not supported"
		EXIT_STATUS=${STATUS_NOT_IMPLEMENTED}
		;;

	enablesnmp)
		# enable Data Engine SNMP
		dataeng_enablesnmp
		EXIT_STATUS=$?
		;;

	disablesnmp)
		# disable Data Engine SNMP
		dataeng_disablesnmp
		EXIT_STATUS=$?
		;;

	getsnmpstatus)
		# get Data Engine SNMP enable/disable status
		dataeng_getsnmpstatus
		EXIT_STATUS=$?
		;;

	startdaemon|startd)
		# start Data Engine daemon
		dataeng_startdaemon "$2"
		EXIT_STATUS=$?
		;;

	stopdaemon|stopd)
		# stop Data Engine daemon
		dataeng_stopdaemon "$2"
		EXIT_STATUS=$?
		;;

	restartdaemon|restartd)
		# restart Data Engine daemon
		dataeng_stopdaemon "$2"
		dataeng_startdaemon "$2"
		EXIT_STATUS=$?
		;;

	check-fwsnmp)
		dataeng_check_fwsnmp
		EXIT_STATUS=$?
		;;

	check-fwsnmp-off)
		touch ${DENG_FWSNMP_OFF_FILE}
		EXIT_STATUS=${STATUS_NO_ERROR}
		;;

	check-fwsnmp-on)
		rm -f ${DENG_FWSNMP_OFF_FILE}
		EXIT_STATUS=${STATUS_NO_ERROR}
		;;

	*)
		echo "${DENG_SCRIPT_NAME}: Invalid argument"
		echo "Usage: ${DENG_SCRIPT_NAME} {start|stop|restart|force-reload|status|enablesnmp|disablesnmp|getsnmpstatus}"
		EXIT_STATUS=${STATUS_INVALID_ARG}
esac

exit ${EXIT_STATUS}


###############################################################################
# End Script
###############################################################################


Youez - 2016 - github.com/yon3zu
LinuXploit