2014-10-09 1 views
1

У меня проблема с моей исполняемой банкой на моем кубетике, запущенной на кубике. Я хочу запустить банку, когда начинается кубикет. Сама Jar использует selenium-server-standalone-2.43.1.jar для управления firefox.Firefox Webdriver Selenium «Нет протокола», Debian (Wheezy), Service, Script

Для начала моей баночку я создал простой Баш скрипт («») /usr/local/bin/startplt.sh

#!/bin/bash 

PATH=/bin:/sbin: 
JAVA=/usr/bin/java 
JARFILE=/home/cubie/plt/plt.jar 
USER=cubie 

/bin/su -$USER -c "$JAVA -jar $JARFILE" 

Выполнение этого сценария в консоли работает и открывает светлячок успешно. Для получения моей баночки, чтобы начать при запуске я создал службу («/etc/init.d/startjar»)

#! /bin/sh 
### BEGIN INIT INFO 
# Provides:   startjar 
# Required-Start: $all 
# Required-Stop:  $remote_fs $syslog $local_fs $network 
# Default-Start: 2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Starts plt.jar 
# Description:  starts a the main jarfile 
### END INIT INFO 

NAME="startjar" 
DESC="Starts /home/cubie/plt/plt.jar" 

case "$1" in 
    start) 
     export DISPLAY=:0.0 
     sudo /usr/local/bin/startplt.sh 
    ;; 
    stop) 
    pkill -f /home/cubie/plt/plt.jar 
    pkill -f iceweasel 
    ;; 
    *) 
    exit 1 
    ;; 
esac 
exit 0 

и вставить его в систему:

insserv /etc/init.d/startjar 

Служба запускается на выполнении при запуске, но он не запускает firefox. Вместо ее написания в лог-файл:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port    056 after 45000 ms. Firefox console output: 
No protocol specified 
Error: cannot open display: :0.0 
No protocol specified 
Error: cannot open display: :0.0 

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118) 
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95) 
at de.etc.plt.display.DisplayManager.<init>(DisplayManager.java:20) 
at de.etc.plt.display.DisplayManager.getInstance(DisplayManager.java:26) 
at de.etc.plt.service.impl.DisplayService.<init>(DisplayService.java:25) 
at de.etc.plt.MainThread.run(MainThread.java:33) 
at java.lang.Thread.run(Thread.java:745) 
2014-10-09 12:25:27 [ERROR]:Firefox konnte nicht gestartet werden 
2014-10-09 12:25:27 [org.openqa.selenium.WebDriverException]:Failed to connect to binary  FirefoxBinary(/usr/bin/firefox) on port 7056; process output follows: 
No protocol specified 
Error: cannot open display: :0.0 
No protocol specified 
Error: cannot open display: :0.0 

Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33' 
System info: host: 'Cubian', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'arm', os.version: '3.4.79-sun7i', java.version: '1.7.0_65' 
Driver info: driver.version: FirefoxDriver 
org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7056; process output follows: 
No protocol specified 
Error: cannot open display: :0.0 
No protocol specified 
Error: cannot open display: :0.0 

Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:33' 
System info: host: 'Cubian', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'arm', os.version: '3.4.79-sun7i', java.version: '1.7.0_65' 
Driver info: driver.version: FirefoxDriver 
at  org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:130) 
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:246) 
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:114) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:193) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95) 
at de.etc.plt.display.DisplayManager.<init>(DisplayManager.java:20) 
at de.etc.plt.display.DisplayManager.getInstance(DisplayManager.java:26) 
at de.etc.plt.service.impl.DisplayService.<init>(DisplayService.java:25) 
at de.etc.plt.MainThread.run(MainThread.java:33) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7056 after 45000 ms. Firefox console output: 
No protocol specified 
Error: cannot open display: :0.0 
No protocol specified 
Error: cannot open display: :0.0 

at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118) 
... 11 more 
не

Я действительно не понимаю, почему простой скрипт startplt.sh работает даже без дополнительной добавленной линии export DISPLAY=:0.0, чтобы избавиться от ошибки «нет отображения заданного»

Может быть, служба запускается до того, как начался xserver? Я не знаю, как это узнать. Некоторая помощь была бы очень оценена.

Если у вас есть другое рабочее решение для выполнения скриптов после загрузки кубического, я тоже был бы счастлив.

EDIT: У меня работает firefox, позволяя нескольким пользователям использовать xserver с xhost +, а затем service startjar start. Но все-таки есть проблема, что оно не работает на старте системы

ответ

0

Я установил свой вопрос, изменив startplt.sh на

#!/bin/bash 

PATH=/bin:/sbin: 
JAVA=/usr/bin/java 
JARFILE=/home/cubie/plt/plt.jar 
USER=cubie 
DISPLAY=:0 
export DISPLAY 
xhost + 

/bin/su -$USER -c "$JAVA -jar $JARFILE" 

и удалены, что одной линии от службы startjar. xhost + был необходим, чтобы позволить m < jar использовать мой xserver для настройки firefox