monitor_guiagent
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的更多相关文章
随机推荐
- CC2541广播机制和代码分析(未完成)
1. 广播通道有3个,是固定的吗?设备为了节省功耗,可以忽略掉几个应答? 连接间隔可以是7.5ms到4s内的任意值,但必须是1.25ms的整数倍,从设备延迟,实际上是一个连接间隔的倍数,代表从设备在必 ...
- 金山注入浏览器默认开启上网导航 www.uu114.cn
金山注入浏览器默认开启上网导航 www.uu114.cn 今天突然发现我的电脑所有浏览器打开后,都会默认打开一个www.uu114.cn网站,chrome.firefox和IE都中招了.经过排查,发现 ...
- hdu1257最少拦截系统(暴力)
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- Objective-C 构造方法 分类 类的深入研究
构造方法 1.对象创建的原理 new的拆分两部曲 Person *p = [Person alloc]; 分配内存(+alloc) Person *p = [p init]; 初始化(-init) 合 ...
- ISE 14.7安装教程最新版(Win10安装)——解决Win10安装完后打不开快捷方式的方法
ISE 14.7安装教程最新版(Win10安装) Xilinx ISE是一款世界著名的硬件设计软件,它为设计流程的每一步都提供了直观的生产力增强工具,覆盖从系统级设计探索.软件开发和基于HDL硬件设计 ...
- Zookeeper与Eureka的区别
Zookeeper与Eureka的区别 想要了解Zk与eureka的区别首先要知道CAP定理 CAP定理 Mysql强一致性(数据唯一出处),设计数据库设计的三范式 (表必须有主键:表不能有重复的列: ...
- Spring Cloud(九):配置中心(消息总线)【Finchley 版】
Spring Cloud(九):配置中心(消息总线)[Finchley 版] 发表于 2018-04-19 | 更新于 2018-05-07 | 我们在 Spring Cloud(七):配置中心 ...
- 孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块
孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块 (完整学习过程屏幕记录视频地址在文末) 由于本身tesseract模块针对普通的验证码图片的识别率并不高 ...
- HDU 4169 Wealthy Family(树形DP)
Problem Description While studying the history of royal families, you want to know how wealthy each ...
- Python中的Numeric
整型Integer 在Python2.X中,Integer有两种类型,一种是32bit的普通类型,一种是精度无限制的long类型,在数字后面标识l或者L来标识long类型,并且,当32bit发生ove ...