写点什么

Shell 检查程序进程是否存在,自动重启

作者:最爱小胖子
  • 2024-03-08
    上海
  • 本文字数:528 字

    阅读完需:约 2 分钟

| 待验证,检测服务器上应用进程是否存在,如果不存在(超过 5 分钟,重启程序),

#!/bin/bash
# 进程列表和对应的启动脚本processes=("进程1" "进程2" "进程3")startup_scripts=("启动脚本1.sh" "启动脚本2.sh" "启动脚本3.sh")check_interval=60 # 检查间隔(秒)check_count=5 # 检查次数
# 检查进程是否存在的函数check_process() { # 使用pgrep命令查找指定进程的PID pgrep -x "$1" > /dev/null # 检查pgrep命令的退出状态 if [[ $? -eq 0 ]]; then echo "进程 $1 存在" else echo "进程 $1 不存在" # 循环检查多次 for ((i = 1; i <= check_count; i++)); do sleep "$check_interval" pgrep -x "$1" > /dev/null if [[ $? -eq 0 ]]; then echo "进程 $1 已重启" return fi done # 调用启动脚本 echo "调用启动脚本 ${startup_scripts[$2]}" ./"${startup_scripts[$2]}" fi}
# 循环遍历进程列表并调用函数检查进程是否存在for i in "${!processes[@]}"; do check_process "${processes[$i]}" "$i"done
复制代码

添加到定时任务

crontab -e
复制代码


# 6分钟执行一次*/6 * * * * /bin/bash /path/to/your/script.sh
复制代码

查询定时任务列表:

crontab -l
复制代码


用户头像

还未添加个人签名 2019-07-08 加入

还未添加个人简介

评论

发布
暂无评论
Shell 检查程序进程是否存在,自动重启_最爱小胖子_InfoQ写作社区