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. CC2541广播机制和代码分析(未完成)

    1. 广播通道有3个,是固定的吗?设备为了节省功耗,可以忽略掉几个应答? 连接间隔可以是7.5ms到4s内的任意值,但必须是1.25ms的整数倍,从设备延迟,实际上是一个连接间隔的倍数,代表从设备在必 ...

  2. 金山注入浏览器默认开启上网导航 www.uu114.cn

    金山注入浏览器默认开启上网导航 www.uu114.cn 今天突然发现我的电脑所有浏览器打开后,都会默认打开一个www.uu114.cn网站,chrome.firefox和IE都中招了.经过排查,发现 ...

  3. hdu1257最少拦截系统(暴力)

    最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  4. Objective-C 构造方法 分类 类的深入研究

    构造方法 1.对象创建的原理 new的拆分两部曲 Person *p = [Person alloc]; 分配内存(+alloc) Person *p = [p init]; 初始化(-init) 合 ...

  5. ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法

    ISE 14.7安装教程最新版(Win10安装) Xilinx ISE是一款世界著名的硬件设计软件,它为设计流程的每一步都提供了直观的生产力增强工具,覆盖从系统级设计探索.软件开发和基于HDL硬件设计 ...

  6. Zookeeper与Eureka的区别

    Zookeeper与Eureka的区别 想要了解Zk与eureka的区别首先要知道CAP定理 CAP定理 Mysql强一致性(数据唯一出处),设计数据库设计的三范式 (表必须有主键:表不能有重复的列: ...

  7. Spring Cloud(九):配置中心(消息总线)【Finchley 版】

    Spring Cloud(九):配置中心(消息总线)[Finchley 版]  发表于 2018-04-19 |  更新于 2018-05-07 |  我们在 Spring Cloud(七):配置中心 ...

  8. 孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块

    孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块 (完整学习过程屏幕记录视频地址在文末) 由于本身tesseract模块针对普通的验证码图片的识别率并不高 ...

  9. HDU 4169 Wealthy Family(树形DP)

    Problem Description While studying the history of royal families, you want to know how wealthy each ...

  10. Python中的Numeric

    整型Integer 在Python2.X中,Integer有两种类型,一种是32bit的普通类型,一种是精度无限制的long类型,在数字后面标识l或者L来标识long类型,并且,当32bit发生ove ...