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的更多相关文章
随机推荐
- HttpClient&Jsoup爬虫的简单应用
详细的介绍已经有很多前辈总结,引用一下该篇文章:https://blog.csdn.net/zhuwukai/article/details/78644484 下面是一个代码的示例: package ...
- CakePHP 总结
1. 处理任何保存或获取数据的操作最好都写在模型(Model)中.这个概念通常被称为fat model. 2. 返回上一条插入记录的ID, $this->Example->getInser ...
- Linux命令非常全
最近都在和Linux打交道,感觉还不错.这也是很多人喜欢linux的原因,比较短小但却功能强大.我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构(1) uname ...
- Windows系统常用修复命令 无须重装系统
1.0 netsh int ipv4 reset 2.0 netsh winsock reset winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层 ...
- Navicat 导入sql脚本文件
Navicat 导入sql脚本文件 我在组建自己工作用的数据库时要导入.sql脚本文件,用cmd窗口导入太慢,navicat的导入向导里又无导入sql脚本的选项, 但不是navicat中没有导入sql ...
- 初学Direct X (2)
初学Direct X (2) 这一次要学习如何现实位图,尽管看过对双缓冲机制还有很多疑问,但是这并不阻碍我对他的入门了解 Direct3D提供了一个双重/后台缓冲区,在调用CreateDevice之时 ...
- HDU - 6409:没有兄弟的舞会(数学+思维)
链接:HDU - 6409:没有兄弟的舞会 题意: 题解: 求出最大的 l[i] 的最大值 L 和 r[i] 的最大值 R,那么 h 一定在 [L, R] 中.枚举每一个最大值,那么每一个区间的对于答 ...
- 爬虫1.5-ajax数据爬取
目录 爬虫-ajax数据爬取 1. ajax数据 2. selenium+chromedriver知识准备 3. selenium+chromedriver实战拉勾网爬虫代码 爬虫-ajax数据爬取 ...
- 孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块
孤荷凌寒自学python第八十四天搭建jTessBoxEditor来训练tesseract模块 (完整学习过程屏幕记录视频地址在文末) 由于本身tesseract模块针对普通的验证码图片的识别率并不高 ...
- centos端口管理
centos 6.5 ###############配置filter表防火墙############### #清除预设表filter中的所有规则链的规则iptables -F #清除预设表filter ...