首页 > 系统相关 >shell脚本 监听程序并重启

shell脚本 监听程序并重启

时间:2022-11-02 15:46:27浏览次数:40  
标签:-% shell grep +% 重启 py echo date 监听

#!/bin/bash
echo "开始"
echo "`date "+%Y-%m-%d %H:%M:%S"` 正在杀进程..."
ps -aux | grep 你的程序名.py | grep -v grep | awk '{print $2}' | xargs kill -9
echo "`date "+%Y-%m-%d %H:%M:%S"` 进程已杀死!"

echo "`date "+%Y-%m-%d %H:%M:%S"` 正在重启服务..."
nohup python3 你的程序名.py >/dev/null  2>&1 &
echo "`date "+%Y-%m-%d %H:%M:%S"` 服务重启完毕!"

# 函数: CheckProcess
# 功能: 检查一个进程是否存在
# 参数: $1 --- 要检查的进程名称
# 返回: 如果存在返回0, 否则返回1.
#------------------------------------------------------------------------------
CheckProcess()
{
  # 检查输入的参数是否有效
  if [ "$1" = "" ];
  then
    return 1
  fi

  #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动
  PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
  if [ $PROCESS_NUM -ge 1 ];   # 里面加了多进程大于等于1,一个进程是eq
  then
    return 0
  else
    return 1
  fi
}



while [ 1 ] ; do
     CheckProcess "你的程序名"
     Check_RET=$?
     echo $Check_RET -eq 1
     if [ $Check_RET -eq 1 ];
     then
        echo "服务不正常"
      
        ps -aux | grep 你的程序名.py | grep -v grep | awk '{print $2}' | xargs kill -9
        nohup python3 你的程序名.py >/dev/null  2>&1 &
    else
        echo "服务正常"
    fi
 sleep 10
done

标签:-%,shell,grep,+%,重启,py,echo,date,监听
From: https://www.cnblogs.com/pythonywy/p/16851178.html

相关文章

  • shell编程之函数以及函数中的递归
    一、什么是函数使用函数可以避免代码重复使用函数可以将大的工程分割为若干小的功能模块,代码的可读性更强类似于Java的方法    二、获取函数的返回值return表......
  • shell脚本三剑客之awk
    awk的概述1、awk的概念逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令sed命令常用于一整行的处理,......
  • 通过ansible shell模块运行java程序问题记录
    问题1启动java进程没有反应描述我是通过shell模块执行一个启动脚本,脚本中通过java命令启动springboot的jar包,脚本的核心但是运行结束后没有反应。看起来进程并没有被执......
  • Docker容器 获取宿主机CPU信息等或重启网卡命令操作介绍
    1.知识点介绍A.Docker和宿主机共用一个内核,Namespace的隔离依然没有完全隔离Linux资源,如:/proc、/sys、/dev/sd*等目录;B.使用Docker容器问题:在容器中执行top、......
  • shell语法4-printf命令、test命令和判断符号[]、逻辑运算符&&和||
    一、printf命令printf命令用于格式化输出,类似于C/C++中的printf函数。默认不会在字符串末尾添加换行符!!!例如:printf"%10d.\n"123 #占10位,右对齐printf"%-10.2f.\n"......
  • shell脚本应用(一)
    拓扑图:一、环境变量的定义1.定义局部环境变量(1)创建环境变量名字为a和b并赋值[root@centos7~]#a=benet[root@centos7~]#b=6.0(2)调用局部环境变量[root@centos7~]......
  • shell语法2-默认变量、数组
    一:文件参数变量1、在执行shell脚本时,可以向脚本传递参数。$1是第一个参数,$2是第二个参数,以此类推。特殊的,$0是文件名(包含路径)#!/bin/bashecho"文件名:"$0echo"第一个参......
  • shell语法1-概论、注释、变量、字符串
    如果感觉有点忘了或者有点懵,敲出来测试测试就好了一:概论Linux系统中一般默认使用bash,文件开头需要写#!/bin/bash,指明bash为脚本解释器chmod+xfilename:使脚本具有可执......
  • 练手项目-C实现交互式Shell
    项目描述利用C语言实现交互式Shell终端功能。先实现常用Linuxcommand。交互式Shell交互式shellIO实现remove-指定创建和删除文件IO-opendir-readdir文件IO......
  • 使用Spring Boot DevTools自动重启,有什么用
    SpringBootDevTools的自动重启部署功能,个人感觉并没有什么用。默认,在引入这个依赖后,只要编译一下类,整个服务就自动重启了。没明白这个有啥提效的作用。这个自动重启,可以......