You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft进程监控Bash脚本异常:无法实时检测状态变更

修复Minecraft进程监控脚本的状态不更新问题

原脚本的核心问题

  1. Shebang错误:第一行!#/bin/bash格式颠倒,正确写法应为#!/bin/bash,否则脚本可能无法被Bash正确解析执行。
  2. 状态变量未重置:仅在pgrep检测到进程时将status设为true,但进程消失后未将status重置为false,导致变量一直保留旧状态,无法反映当前进程情况。
  3. 条件判断语法错误:if $status = true;不符合Bash条件判断规范,容易触发语法异常。
  4. 无循环间隔:无限循环未设置休眠逻辑,会持续占用CPU资源。
  5. 拼写错误:pres CTRL + C应为press CTRL + C。

修正后的脚本

#!/bin/bash
while :
do
    # 每次循环先重置状态为false,确保基于当前进程检测结果更新
    status=false
    # 检测到Minecraft进程则标记状态为true
    pgrep -f minecraft && status=true

    if $status; then
        echo "Minecraft is up"
    else
        echo "Minecraft is down"
        echo "Restarting in 10 seconds, press CTRL + C to cancel"
        sleep 10
        ./run.sh
    fi
    # 添加循环间隔,降低CPU占用,时长可按需调整
    sleep 5
done

关键修改说明

  • 每次循环开头重置status为false,确保状态始终基于当前进程检测结果,而非历史值。
  • 简化条件判断:直接用if $status;判断布尔变量,比字符串比较更简洁可靠。
  • 添加sleep 5控制循环频率,避免系统资源被过度消耗。
  • 修正Shebang和拼写错误,保证脚本的正确性与可读性。

内容的提问来源于stack exchange,提问作者Cowardlycamper32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:04:59