首页 > 系统相关 >进程守护

进程守护

时间:2024-03-15 15:58:04浏览次数:23  
标签:grep name modules echo zt 进程 033 守护

#!/bin/sh
declare -A modules=(["gateway"]="zt-gateway" ["auth"]="zt-auth" ["site"]="zt-modules-site" ["system"]="zt-modules-system" ["chip"]="zt-modules-chip")
name=""
zt_start(){
    zt_get $1
        
        if [ "$name" = "" ]
        then
        echo "$1 not found"
        else
            pid=`ps axu  | grep $name |  grep -v grep `
            if [ ! -n "$pid" ]; then
                    echo -e "$name Active(\033[31mdead\033[0m) , it's will be restart now".
                    /usr/bin/java -jar /data/www/ztgl_server/$name.jar -Xms512m -Xmx512m -Xmn256m -XX:+PrintGCDetails  -XX:+PrintGCDateStamps -Xloggc:/data/www/ztgl_server/logs/$name-gc.log >> /data/www/ztgl_server/logs/$name.log 2>&1 &
                    echo -e "$name Active(\033[32mrunning\033[0m)"
            else
                    echo -e "$name Active(\033[32mrunning\033[0m)"
        fi
        fi
}


zt_stop(){
    zt_get $1
    
    if [ "$name" != "" ]
        then
        echo "ps axu | grep $name | grep -v grep | awk '{print $2}' | xargs -i sudo kill -9 {}"
        ps axu | grep $name | grep -v grep | awk '{print $2}' | xargs -i sudo kill -9 {} 


        echo -e "\033[32m{$name} was killed.\033[0m"
        else
        echo "$1 not found"
    fi
}


zt_restart(){
    zt_stop $1
    zt_start $1    
}


zt_get(){
    for i in ${!modules[@]}
    do  
      if [ "$i" = "$1" ]
           then
          name=${modules[$i]}
          break
           fi
    done
}
show_help()
{
printf "
Usage: $0 [OPTIONS]


OPTIONS: start | stop | restart


example: monitor.sh gateway restart
"
}




case $2 in
    "start" )
        zt_start $1
        exit
        ;;
    "stop" )
        zt_stop $1
        exit
        ;;
    "restart" )
        zt_restart $1
        exit
        ;;
    *)
        show_help
        exit
        ;;
esac



#!/bin/bash
declare -A modules=(["gateway"]="zt-gateway" ["auth"]="zt-auth" ["site"]="zt-modules-site" ["system"]="zt-modules-system" ["chip"]="zt-modules-chip" ["equipment"]="zt-modules-equipment")
declare -A jarpaths=(["gateway"]="/home/qqmovie/ztgl/zt-gateway/target/zt-gateway.jar" ["auth"]="/home/qqmovie/ztgl/zt-auth/target/zt-auth.jar" ["site"]="/home/qqmovie/ztgl/zt-modules/zt-site/target/zt-modules-site.jar" ["system"]="/home/qqmovie/ztgl/zt-modules/zt-system/target/zt-modules-system.jar" ["chip"]="/home/qqmovie/ztgl/zt-modules/zt-chip/target/zt-modules-chip.jar" ["equipment"]="/home/qqmovie/ztgl/zt-modules/zt-equipment/target/zt-modules-equipment.jar")
name=""
jarpath=""
zt_start(){
    zt_get $1
        
        if [ "$name" = "" ]
        then
        echo "$1 not found"
        else
            pid=`ps axu  | grep $name |  grep -v grep `
            if [ ! -n "$pid" ]; then
                    echo -e "$name Active(\033[31mdead\033[0m) , it's will be restart now".
                    /usr/bin/java -jar $jarpath -Xms512m -Xmx512m -Xmn256m -XX:+PrintGCDetails  -XX:+PrintGCDateStamps -Xloggc:/data/log/$name-gc.log >> /data/log/zt-$name.log 2>&1 &
                    echo "/usr/bin/java -jar $jarpath -Xms512m -Xmx512m -Xmn256m -XX:+PrintGCDetails  -XX:+PrintGCDateStamps -Xloggc:/data/log/$name-gc.log >> /data/log/zt-$name.log 2>&1 &"
                    echo -e "$name Active(\033[32mrunning\033[0m)"
            else
                    echo -e "$name Active(\033[32mrunning\033[0m)"
        fi
        fi
}


zt_stop(){
    zt_get $1
    
    if [ "$name" != "" ]
        then
        echo "ps axu | grep $name | grep -v grep | awk '{print $2}' | xargs -i sudo kill -9 {}"
        ps axu | grep $name | grep -v grep | awk '{print $2}' | xargs -i sudo kill -9 {} 


        echo -e "\033[32m{$name} was killed.\033[0m"
        else
        echo "$1 not found"
    fi
}


zt_restart(){
    zt_stop $1
    zt_start $1    
}


zt_get(){
    for i in ${!modules[@]}
    do  
      if [ "$i" = "$1" ]
           then
          name=${modules[$i]}
          jarpath=${jarpaths[$i]}
          break
           fi
    done
}
zt_status(){
    for i in ${!modules[@]}
        do
        name=${modules[$i]}
        jarpath=${jarpaths[$i]}
        pid=`ps axu  | grep $name |  grep -v grep `
                if [ ! -n "$pid" ]; then
                        echo -e "$i  Active(\033[31mdead\033[0m)"
                else
                        echo -e "$i  Active(\033[32mrunning\033[0m)"
                fi    
    done
    echo " "
    echo " " 
}


zt_monitor(){
    for i in ${!modules[@]}
        do
                name=${modules[$i]}
        now=`date '+%Y-%m-%d %H:%M:%S'`
                pid=`ps axu  | grep $name |  grep -v grep `
                if [ ! -n "$pid" ]; then
            echo -e "$now $name Active(\033[31mdead\033[0m) , it's will be restart now".
               /usr/bin/java -jar /data/www/ztgl_server/$name.jar -Xms512m -Xmx512m -Xmn256m -XX:+PrintGCDetails  -XX:+PrintGCDateStamps -Xloggc:/data/www/ztgl_server/logs/$name-gc.log >> /data/www/ztgl_server/logs/$name.log 2>&1 &
             echo -e "$now $name it's worked."
        else
            echo -e "$now $name Active(\033[32mrunning\033[0m)"
                fi
        done
}
show_help()
{
printf "
Usage: $0 [MODULES] [OPTIONS]


MODULES: gateway | auth | site | system | chip | equipment


OPTIONS: start | stop | restart


example: $0 gateway restart




"
}




case $2 in
    "start" )
        zt_start $1
        exit
        ;;
    "stop" )
        zt_stop $1
        exit
        ;;
    "restart" )
        zt_restart $1
        exit
        ;;
    "monitor" )
    zt_monitor
        exit
        ;;
    *)
        show_help
    zt_status
        exit
        ;;
esac

标签:grep,name,modules,echo,zt,进程,033,守护
From: https://www.cnblogs.com/netstat/p/18075593

相关文章

  • 达梦数据守护系统(主备架构)如何正确重启备库
     达梦数据守护系统(主备架构)如何正确重启备库 达梦主备架构有官方的名称,叫做:数据守护系统。无论是重启主库还是备库,或者关闭守护系统的时候,需要按照一定顺序和规则来执行。不然可能引起主备切换,主库进入suspend状态,甚至造成守护进程组分裂等可能。 这里讨论如何规范重......
  • php多进程引发mysql查询问题
    1、报错:Packetsoutoforder.Expected1received56.Packetsize=3159346开始配置my.cnf的max_allowed_packet=2G可是没什么卵用原因:个人判断是因在laravelmysql的连接是随着php销毁而销毁;所以会保持数据库的连接会话能重复使用所以要配置database.php  配置文件opt......
  • python项目开发——总结笔记(csv excel读取 服务端端口进程 拟合预测 时间格式转化 服
    目录部署服务端程序主服务端控制程序main.py子目录的计算程序jisuan.py读取数据读取csv数据读取读取excel时间格式转换时间戳转datetime并且生成时间序列最后格式化时间 常用函数拟合预测服务端程序控制与维护部署服务端程序主服务端控制程序main.pyfromfl......
  • 【Linux】进程状态
    1Linux内核源代码为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)。下面的状态在kernel源代码里定义:/**Thetaskstatearrayisastrange"bitmap"of*reasonstosleep.Thus"running"i......
  • 进程间通信的六种方式
    每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核一、管道匿名管道通过fork()系统调用创建的子进程与父进程之间的通信通道,另外还可以通过以下操作实现非父子进程之间的通信catxxx|wc-l命名管......
  • 3/14学习进程
    大二学期第三周日报 第一天第二天第三天第四天第五天所花时间(包括上课) 210min90min 150min 0min 代码量(行) 350 200 250 0 博客量(篇) 1 1 1 1 了解到的知识点编写安卓增删改查,使用sqlite存储数据 ......
  • 在Linux中,如何查看系统当前运行的进程以及它们的状态?
    在Linux中查看当前系统运行的进程以及它们的状态,可以使用多种命令工具,以下是一些常用的方法:ps命令:最基础的查看进程信息方式是使用ps命令。简单查看当前终端下的进程,可以输入:ps若想查看所有进程,包括其他终端下的进程,可以加上-e参数:ps-e若要查看详细的进程信......
  • Linux进程状态
    目录1.R运行状态(running)2.S睡眠状态(sleep)3.T或t状态(stopped或tracingstop)4.Z状态(zombie)(僵尸进程)1.R运行状态(running)并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。在CentOS7中,当查看进程状态时,可能会注意到很少看到进程处于状态为"R"(Ru......
  • 第二章操作系统进程与线程
    一、进程的概念组成特征    程序的概念:静态的,存放在磁盘内的可执行文件,一系列的指令集合        进程的概念:动态的,程序的执行过程    进程创建时,会被操作系统分配一个唯一的、不重复的编号                进程实体(进程映像)的组成......
  • Windows下一个普通权限的账户,怎么启动一个有管理员权限的进程
    我们知道,如果Windows下一个普通权限的账户,直接启动管理员权限的进程,会弹出输入管理员账号密码的提示窗。但是如果我想通过自启动一个管理员权限的进程怎么办呢,既然都自启动了,还要我输入账号密码就说不过去了。一开始尝试了任务计划程序中的“运行任务时,请使用下列用户账户”,赋值......