Eecd daemon recovery

Fujitsu.Servers.PRIMERGY.Linux.EecdManagement.Recovery (Recovery)

Recovers the Eecd daemon process using a shell script (start/restart all agents if necessary)

Element properties:

TargetFujitsu.Servers.PRIMERGY.Linux.EecdManagement
MonitorFujitsu.Servers.PRIMERGY.Linux.eecd.ShellScript.LessThan.ThreeState.Monitor
Reset MonitorFalse
RemotableTrue
Timeout300
CategoryCustom
Enabledtrue
AccessibilityPublic

Member Modules:

ID Module Type TypeId RunAs 
InvokeWA WriteAction Fujitsu.Servers.PRIMERGY.Linux.ShellScript.WriteAction Default

Source Code:

<Recovery ID="Fujitsu.Servers.PRIMERGY.Linux.EecdManagement.Recovery" Accessibility="Public" Enabled="true" Target="Fujitsu.Servers.PRIMERGY.Linux.EecdManagement" Monitor="Fujitsu.Servers.PRIMERGY.Linux.eecd.ShellScript.LessThan.ThreeState.Monitor" ResetMonitor="false" ExecuteOnState="Error" Remotable="true" Timeout="300">
<Category>Custom</Category>
<WriteAction ID="InvokeWA" TypeID="Fujitsu.Servers.PRIMERGY.Linux.ShellScript.WriteAction">
<TargetSystem>$Target/Property[Type="Fujitsu.Servers.PRIMERGY.Linux.ManagementClientSoftware"]/NetworkName$</TargetSystem>
<ShScriptName>EecdRecovery.sh</ShScriptName>
<ShScriptBody>#!/bin/sh
# Fujitsu
# Copyright 2014-2019 FUJITSU LIMITED
#
# EecdHealth.sh - monitors the health of ServerView Agent's EECD daemon

SCRIPTLOG="/tmp/Fujitsu/$0.log"

# arguments check
DBG=`echo $1 | awk '{print tolower($0)}'`
[ "$DBG" = "dbg" ] &amp;&amp; echo "Running $0 in debug mode"

# In DEBUG mode: generate some files under "/tmp" to see, the script is running
if [ "$DBG" = "dbg" ]
then
mkdir -p /tmp/Fujitsu/
tail $SCRIPTLOG 2&gt;/dev/null &gt; $SCRIPTLOG.bk
mv -f $SCRIPTLOG.bk $SCRIPTLOG
echo "$0 V__MP_VERSION__ last ran at `date`" &gt;&gt; $SCRIPTLOG
fi

# test that ServerView Linux Agents (srvmagt) are installed
SRVMAGT=`whereis srvmagt | awk 'NF&gt;1{print $2}'`
if [ "$SRVMAGT" = "" ]
then
echo "ServerView Linux Agents are *NOT* installed! Cannot recover."
exit 0
fi
[ "$DBG" = "dbg" ] &amp;&amp; echo "ServerView Linux Agents are installed at: $SRVMAGT"

# test that eecd is installed
EECD=`whereis eecd | awk 'NF&gt;1{print $2}'`
if [ "$EECD" = "" ]
then
echo "ServerView Linux Agents EECD is *NOT* installed! Cannot recover."
exit 0
fi
[ "$DBG" = "dbg" ] &amp;&amp; echo "ServerView Linux Agents EECD is installed at: $EECD"

# test that EECD is running
EECDRUNNING=`ps -A | grep -i '[e]ecd'`
if [ "$EECDRUNNING" = "" ]
then
echo "ServerView Linux Agents EECD is not running, starting"
srvmagt start
exit 0
fi
[ "$DBG" = "dbg" ] &amp;&amp; echo "ServerView Linux Agents EECD is running"

# test if EECD is listening
EECDLISTENING=`netstat -nlx | grep -i "/dev/eecds\|/dev/eecda" | wc -l`
if [ $EECDLISTENING -lt 2 ]
then
echo "ServerView Linux Agents EECD is not listening, restarting"
srvmagt restart
exit 0
fi
[ "$DBG" = "dbg" ] &amp;&amp; echo "ServerView Linux Agents EECD is listening"
[ "$DBG" = "dbg" ] &amp;&amp; echo "Nothing to do"

exit 0
</ShScriptBody>
<ScriptArguments>3_chars_DBG_for_DEBUG</ScriptArguments>
<Timeout>60</Timeout>
<UserName>$RunAs[Name="Unix!Microsoft.Unix.PrivilegedAccount"]/UserName$</UserName>
<Password>$RunAs[Name="Unix!Microsoft.Unix.PrivilegedAccount"]/Password$</Password>
</WriteAction>
</Recovery>