monitor_guiagent

monitor_guiagent.sh

#!/usr/bin/env bash
#filename : monitor_guiagent.sh
#Usage: /usr/bin/nohup /var/hgans/gui/ans_php_env/monitor_guiagent.sh >/dev/null 2>/dev/null & #
# Append the following command to the rc.local for running monitor_guiagent.sh :
# /bin/ps -waux | /usr/bin/grep "monitor_guiagent" | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}' | /usr/bin/xargs /bin/kill -9
# /bin/ps -waux | /usr/bin/grep "/var/hgans/gui/agent" | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}' | /usr/bin/xargs /bin/kill -9
# /usr/bin/nohup /var/hgans/gui/ans_php_env/monitor_guiagent.sh >/dev/null 2>/dev/null &
# PS="/bin/ps"
KILL="/bin/kill"
GREP="/usr/bin/grep"
AWK="/usr/bin/awk"
WC="/usr/bin/wc"
TAIL="/usr/bin/tail"
HEAD="/usr/bin/head"
XARGS="/usr/bin/xargs"
ANSCLI="/hgans/anscli"
DATE_EXEC="/bin/date" ANSLOG_FILE="/var/anslog/ans.log"
USER_NAME="%%:ansroot:."
SHOW_SYS_SESSION="show system session -summary"
KILL_ALL_SYS_SESSION="kill system session -all"
KILL_SID_SYS_SESSION="kill system session "
CLEAR_SYS_SESSION_FLAG_FILE="/flash/anscfg/.clear_sys_session"
MAX_SYS_SESSION=12 GUI_HOME="/var/hgans/gui"
HTTPD_DIR="ans_php_env"
RC_CONF_NAME="rc.conf"
RC_LOCAL_NAME="rc.local"
AGENT_DIR="agent"
ANSRAPI_EXEC_NAME="ansrapi_agent"
HGCLOUD_EXEC_NAME="hgcloud_proxy"
MANS_EXEC_NAME="mans_log"
NOTIFYLOG_EXEC_NAME="NotifyLog"
KILL_SIGNAL_NUMBER=9
SLEEP_SECOND_NUMBER=3 while true
do
arr_exec=($ANSRAPI_EXEC_NAME $HGCLOUD_EXEC_NAME $MANS_EXEC_NAME $NOTIFYLOG_EXEC_NAME)
arr_column=${#arr_exec[@]}
for (( i=0; i < ${arr_column}; i++ ))
do
exec_num=`$PS -waux | $GREP ${arr_exec[$i]} | $GREP -v grep | $WC -l`
if [ $exec_num -eq 0 ]; then
echo monitor_guiagent: `$DATE_EXEC +"%Y-%m-%d %H:%M:%S"`": Restart webgui agent process ${arr_exec[$i]} ..." >> $ANSLOG_FILE
$PS -waux | $GREP ${arr_exec[$i]} | $GREP -v grep | $AWK '{print $2}' | $XARGS $KILL $KILL_SIGNAL_NUMBER
${GUI_HOME}/${AGENT_DIR}/${arr_exec[$i]} >/dev/null 2>/dev/null &
fi
done current_system_session_line=`$ANSCLI -U $USER_NAME -s "$SHOW_SYS_SESSION" | $WC -l`
current_system_session_num=$((current_system_session_line-3))
if [ -f $CLEAR_SYS_SESSION_FLAG_FILE -a $current_system_session_num -gt $MAX_SYS_SESSION ]; then
arr_sid=(`$ANSCLI -U $USER_NAME -s "$SHOW_SYS_SESSION" | $TAIL -n $current_system_session_num | $AWK '{print $2}'`)
arr_column=${#arr_sid[@]}
for (( i=0; i < ${arr_column}; i++ ))
do
if [ $i -gt 3 ]; then
echo monitor_guiagent: `$DATE_EXEC +"%Y-%m-%d %H:%M:%S"`": Kill system session ${arr_sid[$i]} ..." >> $ANSLOG_FILE
$ANSCLI -U $USER_NAME -s "$KILL_SID_SYS_SESSION ${arr_sid[$i]}"
else
echo monitor_guiagent: `$DATE_EXEC +"%Y-%m-%d %H:%M:%S"`": Keep system session ${arr_sid[$i]} ..." >> $ANSLOG_FILE
fi
done
fi sleep $SLEEP_SECOND_NUMBER
done

rc.local

# This script auto start ansrapi_agent for NewGUI
/bin/ps -waux | /usr/bin/grep "monitor_guiagent" | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}' | /usr/bin/xargs /bin/kill -
/bin/ps -waux | /usr/bin/grep "/var/hgans/gui/agent" | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}' | /usr/bin/xargs /bin/kill -
/usr/bin/nohup /var/hgans/gui/ans_php_env/monitor_guiagent.sh >/dev/null >/dev/null &
root@HGANS# cd /var/hgans/gui/ans_php_env

root@HGANS# chmod +x monitor_guiagent.sh

root@HGANS# ps -waux | grep agent | grep -v grep

root@HGANS# ps -waux | grep agent | grep -v grep | awk '{print $2}'| xargs kill -

root@HGANS# ps -waux | grep agent | grep -v grep

root@HGANS# /usr/bin/nohup /var/hgans/gui/ans_php_env/monitor_guiagent.sh >/dev/null >/dev/null &

root@HGANS# ps -waux | grep agent | grep -v grep

root@HGANS# ps -waux | grep agent | grep -v grep

root@HGANS# ps -waux | grep ansrapi_agent | grep -v grep | awk '{print $2}'| xargs kill -

root@HGANS# ps -waux | grep agent | grep -v grep

========================== End

monitor_guiagent的更多相关文章

随机推荐

  1. C#第一阶段——结构体

    概念理解:        很多相互联系的信息可以组成一个整体.比如一个学生的信息包括学号.姓名.性别.年龄等,它们紧密联系,共同描述学生的状况.在 C#中我们可以把这些紧密联系变量定义成结构体(Str ...

  2. fastDFS 分布式文件系统应用

    环境准备 使用的系统软件 名称 说明 centos 7.x libfatscommon FastDFS分离出的一些公用函数包 FastDFS FastDFS本体 fastdfs-nginx-modul ...

  3. 海思NB-IOT的RA功能

    就带ReleaseAssistance标志的特殊发送指令,发送数据的时候会向网络侧请求立即释放RRC进入Idle态. 降低20秒50mA连接态的能量消耗.

  4. iOS应用App Store发布流程

    iOS应用App Store发布流程 要发布iOS应用到App Store首先得有一个开发者账号,且不能是企业版(企业版只能部署inhouse,不能部署到App Store). 应用发布到App St ...

  5. 抽样分布(2) t分布

    定义 t分布 设X ~ N(0,1),Y ~ χ2(n),且X,Y相互独立,则称随机变量 服从自由度为n的t分布(学生氏分布) 记为 t~t(n),其概率密度为 由于tn(x)是偶函数,其图形关于y轴 ...

  6. jenkins通过maven指定testng的xml文件,并给testng代码传参

    1.jenkins设置参数化构建,设置要传的参数名和值 2.指定testng的xml文件,在jenkins的输入以下 3.在pom.xml文件分别引用jenkins的参数,设置两个property & ...

  7. mysql 开启远程连接

    如图,修改mysql数据库中user表中的User字段为root的host为%,然后重新启动mysql服务即可让远程桌面连接本地.

  8. 敏捷开发学习笔记-Agile development(AM)

    以人为核心,迭代,循序渐进 项目被切分为多个子项目,每个子项目都经过测试,具备集成和可运行的特征 5个价值观:沟通.简单.反馈.勇气.谦逊   敏捷模型与瀑布模型的区别 相对于瀑布模型,提高开发效率和 ...

  9. bash特性-命令历史命令行编辑

    bash: GUI:Gnome,KDE,XFCE CLI:sh,csh,bash,ksh,tcsh,zsh shell,子shell tree:查看目录树 pstree:查看进程目录树 bash: 1 ...

  10. 【WXS数据类型】Function

    属性: 名称 值类型 说明 [Function].constructor [String] 返回值为“Function”,表示类型的结构字符串 [Function].length [Number] 返 ...