我有几台由 Raspberry Pi 驱动的电视 - 它们安装了 Raspbian 并直接启动到 Midori 的全屏模式。它们显示指标,因此它们应该始终处于打开状态并显示固定页面。
我最近通过添加一个 cron 作业解决了 wifi 频繁掉线的问题,该作业ifup
在检测到网络故障时会在 wlan 接口上执行操作,这解决了很多停机问题。
但是现在我遇到了一个问题,每当页面本身不可用时,浏览器就会“卡”在错误页面上(我经常收到的错误是“连接意外终止”)。理想的情况是浏览器有一个命令行选项,可以返回当前打开的页面的状态代码/页面上是否发生了任何错误,如果是,我可以重新加载页面或执行类似操作以将其恢复。我已经检查了Midori 终端选项以及铬但它们似乎都没有我想要的东西,而且谷歌搜索起来也很困难。如果有人知道有什么浏览器或工具可以帮助我完成我要做的事情,我将非常感激任何建议!
答案1
您可以使用 wget 或 curl 来实现此目的。两者都是用于获取网页的命令行工具,并且具有检查返回代码的选项。
例如:
webmarc@plato:~$ wget http://www.google.com/ -S -O /dev/null 2>&1 | grep HTTP\/
HTTP/1.1 200 OK
这里-S
告诉 wget 打印服务器标头,-O
将结果文件保存到 /dev/null,因为我对内容不感兴趣,只对状态代码感兴趣。这2>&1
是必需的,因为 wget 会将所有内容打印到 stderr 上。最后,只需将其通过管道传输到 grep 以获取每个响应代码中的部分字符串(HTTP/1.1 是当今每个状态代码的一部分,但我保留了版本,以便它可以与 v1.2 或 2.0 一起使用)。
你可以设置一个 bash shell 脚本
$RESULT=`pi@kali:~$ wget http://www.google.com/ -S -O /dev/null 2>&1 | grep HTTP\/`
if [[ $RESULT != " HTTP/1.1 200 OK" ]]
then fix_teh_broken.sh
fi
将类似的操作按照 1 或 5 分钟的计划放入 cron 中,就可以了。
显然,将您想要监控的 URL 替换为 google。