我正在使用覆盆子pi制作一个网络信息亭显示板,我想在加载后2分钟向浏览器窗口发送一些按键。该脚本发送Web服务器的登录详细信息。
我有一个脚本可以发送从telnet控制台正常工作的击键:
#!/usr/bash
username="username"
password="password"
echo "Setting Display"
export DISPLAY=:0
echo "Sending Username"
for char in $(sed -E s/'(.)'/'\1 '/g <<<"$username"); do
xdotool key $char
done
xdotool key Tab
echo "Sending Password"
for char in $(sed -E s/'(.)'/'\1 '/g <<<"$password"); do
xdotool key $char
done
xdotool key Return
echo "Waiting 5 Seconds"
sleep 5
echo "Setting Remember Password"
xdotool key Tab
xdotool key Tab
xdotool key Return
echo "Finished"
我尝试将bash /home/pi/logon.sh
添加到rc.local文件中 - 但是它不会将键击发送到浏览器?
有人知道为什么会这样吗?正如我所说 - 如果我运行脚本,它在telnet窗口中工作正常,但从启动运行时它不起作用。
如果它立即开始并且等到浏览器加载后我就停止了sleep 120
,我知道脚本是从rc.local运行的,因为当我删除sleep命令时,我从脚本中看到回声。
有什么想法吗?
答案 0 :(得分:4)
它无法工作的原因是因为脚本需要以用户pi的身份运行。
我将rc.local脚本中的代码更改为:su - pi -c "bash /home/pi/logon.sh &"
这使得脚本以用户pi的形式运行,并且使用&符号通过分叉脚本使脚本与rc.local脚本分开运行。 (http://hacktux.com/bash/ampersand)
答案 1 :(得分:1)
将它放在你的crontab
中@reboot /path/to/script
使用
编辑它#crontab -e