我需要找到替代方案xdotool
。我正在使用 Raspberry Pi 使用 Chromium 定期刷新网页。为此,我使用 shell 脚本:
xdotool search --name chromium key --clearmodifiers ${RELOAD}
然而,这xdotool
会让我的系统变得太忙,直到它最终停止响应。是否有任何替代方案xdotool
不会对我的系统造成如此沉重的负担?
编辑(完整的shell脚本)
#!/bin/bash
a=0
RELOAD="CTRL+R"
while (true)
do
wget -q --spider http://google.com
if [ $? == $a ]; then
ps cax | grep chromium
if [ $? == $a ]; then
echo "chrome running"
else
echo "chrome starting"
/home/pi/Desktop/APPLICATION_CALENDAR.SH &
fi
echo $? $a
echo "online1"
xdotool search --name chromium key --clearmodifiers ${RELOAD}
else
echo "offline"
sleep 15s
fi
sleep 20s
done
答案1
访问网页不需要浏览器的完整图形界面:只需要一个 HTTP 请求。例如,使用 cURL 和 Cron,您应该能够每 n 分钟安排一次 HTTP 请求。
例如,以下cron
调用访问example.com
:
curl http://example.com
如果您查看输出,您将看到网站的 HTML 源代码。现在,如果你想这样做,比如说,每分钟,你可以使用......
watch -n60 curl http://example.com
...这将手表curl
每60秒输出一次。
如果您希望所有这些都在后台发生,您可能需要安排一个 cron 作业。运行crontab -e
编辑用户的 crontab,然后输入您的作业:
5 * * * * /usr/bin/curl http://example.com > /dev/null 2>&1
现在,虽然curl
通常执行得到请求,您可能想添加一些邮政根据您的要求提供信息(表格)。邮政可以使用开关添加数据--data
:
curl --data='username=myuser&[email protected]' http://example.com
如果你想添加参数得到请求,只需将它们添加到 URL 中,就像它们出现在浏览器中一样。
关于 cURL 的另一个有趣的点:cookie jars。这些允许您跨多个 cURL 请求维护会话。例如,如果您发出登录请求...
curl -c ~/cookiejar --data='login=mylog&pass=mypass' http://example.com/login.php
...-c
交换机会将您的会话数据存储到~/cookiejar
.现在,如果您想访问您的私人个人资料...
curl -c ~/cookiejar http://example.com/private.php
...您将能够访问它,因为您的 cookie 信息将随请求一起传递。
最后,我建议您在通过 HTTP 传递凭据时使用 SSL。这是一个典型的登录示例:
$ curl -c ~/cookiejar --data='login=mylogin&pass=mypass' https://example.com/login.php
$ curl -c ~/cookiejar https://example.com/private.php
$ curl -c ~/cookiejar https://example.com/logout.php
$ rm ~/cookiejar
...或者,对于更偏执的人来说:shred -fuvz -n3 ~/cookiejar
。