2014-02-05 2 views
3

Я делаю панель отображения киоска с помощью малины pi, и я хочу отправить некоторые штрихи в окно браузера через 2 минуты после ее загрузки. Сценарий отправляет данные входа в систему для веб-сервера.Запуск скрипта оболочки после загрузки на Raspberry PI

У меня есть сценарий, который отправляет нажатия клавиш, который отлично работает на телнет консоли:

#!/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, я вижу эхо из сценария.

Любые идеи?

ответ

4

Причина это не работает потому, что сценарий должен был быть запущен в качестве пользователя пи.

Я изменил код в rc.local сценария к этому: su - pi -c "bash /home/pi/logon.sh &"

Это делает скрипт запуска в качестве пользователя пи и амперсанд используется, чтобы сделать скрипт запуска отдельно от rc.local скрипта разветвления Это. (http://hacktux.com/bash/ampersand)

1

это в вашем кронтаб

@reboot /path/to/script 

Редактировать его с помощью

#crontab -e 

 Смежные вопросы

  • Нет связанных вопросов^_^