Estoy creando un tablero de visualización de quiosco web con una raspberry pi y quiero enviar algunas pulsaciones de teclas a la ventana del navegador 2 minutos después de que se haya cargado. El script envía los detalles de inicio de sesión para un servidor web.
Tengo un script que envía las pulsaciones de teclas que funciona bien desde la consola de 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" Intenté agregar bash /home/pi/logon.sh al archivo rc.local, pero no envía las pulsaciones de teclas al navegador.
¿Alguien sabe por qué sería eso? Como digo, funciona bien desde la ventana de telnet si ejecuto el script, pero no funciona cuando se ejecuta desde el arranque.
Tenía sleep 120 en la línea antes de que se detuviera si disparaba de inmediato y esperé hasta que el navegador se haya cargado, y sé que el script se está ejecutando desde rc.local, porque cuando elimino el comando de suspensión, veo los ecos del script. .
¿Algunas ideas?
La razón por la que no funcionaba era porque el script necesitaba ejecutarse como el usuario pi.
Cambié el código en el script rc.local a esto: su - pi -c "bash /home/pi/logon.sh &"
Esto hace que la secuencia de comandos se ejecute como el usuario pi y el ampersand se usa para hacer que la secuencia de comandos se ejecute por separado de la secuencia de comandos rc.local al bifurcarla. ( http://hacktux.com/bash/ampersand )
Pon esto en tu crontab
@reboot /path/to/scriptEdítalo usando
#crontab -e