监控服务进程并自动重启 monitor

monitor.sh

#!/bin/bash

# 定义服务进程的名称
server_process="es_server"
test_server="test_server"

# 检查服务进程是否在运行
check_process() {
    if pgrep -x "$1" >/dev/null; then
        return 0
    else
        return 1
    fi
}

# 启动服务进程
start_process() {
    if [ -x "$1" ]; then
        "$1"
    fi
}

# 监控服务进程
monitor_processes() {
    while true; do
        # 检查es_server进程
        if ! check_process "$server_process"; then
            echo "es_server进程已退出,重新启动..."
			cd $(ls -td /tpdata/data/OCR/custom_ocr/es_server_V2023* | grep -v "\.tar.gz" | head -1)
            start_process "./es_server.sh"
        fi

        # 检查sanic_es_server进程
        if ! check_process "$test_server"; then
			cd $(ls -td /tpdata/data/OCR/custom_ocr/sanic_es_server_V2023* | grep -v "\.tar.gz" | head -1)
            echo "sanic_es_server进程已退出,重新启动..."
            start_process "./test_server.sh"
        fi

        sleep 5
    done
}

# 开机自动启动监控脚本
add_to_startup() {
    # 获取当前脚本的路径
    script_path=$(readlink -f "$0")

    # 添加到开机启动项
    if ! grep -q "$script_path" ~/.bashrc; then
        echo "添加监控脚本到开机启动项..."
        echo "@reboot $script_path" >> ~/.bashrc
    fi
}

# 启动监控脚本
monitor_processes &

# 添加到开机启动项
add_to_startup
#!/bin/bash

# 定义服务进程的名称
test_server="test_server"

monitor_process(){
    while true; do
        old_pid=`ps -ef|grep -w ${test_server} |grep -v grep |awk 'NR--1 {print $2}'`
        if [ -z "$old_pid" ]; then
            echo "$(date + "%Y%m%d %H%M%S") ${test_server} 进程退出,重新启动..."
            cd $(ls -td /usr/custom_server/${test_server}_V2024* |grep -v "\.tar.gz" |head -1)
            ./startup.sh
        else
            echo "$(date + "%Y%m%d %H%M%S") ${test_server} 进程正常..."
        fi
    done
}

相关推荐

  1. 监控服务进程自动 monitor

    2024-04-28 19:54:03       31 阅读
  2. Linux监听某个进程自动

    2024-04-28 19:54:03       29 阅读
  3. 进程交互实现App自动

    2024-04-28 19:54:03       43 阅读
  4. Linux系统下tomcat服务自动

    2024-04-28 19:54:03       34 阅读
  5. 服务器反复自动/死机的原因

    2024-04-28 19:54:03       57 阅读
  6. 配置Nginx 在服务器自动启动

    2024-04-28 19:54:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 19:54:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 19:54:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 19:54:03       82 阅读
  4. Python语言-面向对象

    2024-04-28 19:54:03       91 阅读

热门阅读

  1. ABAP 常用的日期相关的函数

    2024-04-28 19:54:03       36 阅读
  2. 设计模式之创建型模式总结

    2024-04-28 19:54:03       36 阅读
  3. C++并发编程 - 线程管理

    2024-04-28 19:54:03       35 阅读
  4. DreamFusion:深入解读其原理、功能与应用

    2024-04-28 19:54:03       30 阅读
  5. 一种基于LLM的辅助教学方法与流程

    2024-04-28 19:54:03       26 阅读
  6. ubuntu安装源问题

    2024-04-28 19:54:03       27 阅读
  7. 费曼学习法个人总结-1

    2024-04-28 19:54:03       31 阅读