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

Firefox自助服务终端脚本故障:闲置检测触发后重复打开标签页求助

问题原因及解决方法

问题根源

  1. if条件语法错误:原脚本中if($(xprintidle)>120000);的写法不符合Bash语法规则,导致条件判断失效,pkill -f firefox被频繁触发,进而使得Firefox被反复杀死重启,出现每秒打开新标签的现象。
  2. pkill匹配范围过宽:pkill -f firefox会匹配所有命令行包含"firefox"的进程,可能误杀后台运行第一个循环的Bash进程,进一步加剧异常重启的问题。

修复后的脚本

# 后台启动Firefox自动重启循环
while true; do
    firefox --kiosk --start-fullscreen --noerrdialogs --no-first-run --disable-infobars thesite.com
    sleep 1
done &

# 闲置检测循环
while true; do
    # 判断闲置时间是否超过120秒(120000毫秒)
    if (( $(xprintidle) > 120000 )); then
        # 仅匹配Firefox进程,避免误杀其他进程
        pkill firefox
        # 闲置后暂停2分钟,避免频繁重启
        sleep 120
    fi
    sleep 1
done

关键修复点

  • 修正条件判断语法:使用(( $(xprintidle) > 120000 ))进行数字比较,符合Bash算术表达式语法,确保闲置时间判断准确。
  • 缩小pkill匹配范围:去掉-f参数,仅用pkill firefox匹配Firefox主进程,避免误杀包含"firefox"关键字的其他进程(如后台的循环Bash进程)。
  • 规范代码格式:调整if语句的换行结构,提升脚本可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:24:56