Wie starte ich eine GUI-Anwendung von cron aus?

18

Ich muss ein Java-Applet von einem Firefox ausführen. Das Problem ist, ich muss diesen Firefox von einem Cron ausführen. Wenn ich von der Kommandozeile aus laufe und es funktioniert, aber wenn ich den Befehl in den Cron stecke, ist es fehlgeschlagen:

*/1 * * * * firefox http://domain.com/iqms/packetloss/iqmspacket2.html
Fadabi Nawi
quelle
1
Sie können die Java-Bibliothek von Selenium verwenden , wenn Sie mehr Funktionen benötigen, als nur diese zu öffnen.
Övünç Metin
Sie können Selenium auch mit Python verwenden, was für Skripte einfacher ist.
ESala

Antworten:

25

Cron läuft in einer Umgebung, die nichts über den Anzeigemanager weiß ( $DISPLAYnicht festgelegt). In Ihrem Terminalfenster, in dem Sie getestet haben, ist dies eingestellt. Wenn Sie es in einem "echten" Terminal oder über SSH versuchen, wird es kaputt gehen.

Wenn nur ein X-Server ausgeführt wird, funktioniert möglicherweise nur die Angabe der Anzeige:

* * * * *    DISPLAY=:0 firefox ...

Sie könnten sich wahrscheinlich mehr Mühe geben, um herauszufinden, unter welchem ​​Display es sich befindet, anstatt davon auszugehen :0, dass dies der Fall ist, aber das wird wahrscheinlich die meiste Zeit funktionieren.

Wenn Sie nur viel nachladen müssen, sehen Sie sich Tab Auto Reload oder ähnliche Firefox-Plugins an.

Oli
quelle
Ich habe diese Antwort gefunden, aber der Firefox startet immer noch nicht. Nach ein paar Suchen stellte ich fest, dass ich als gültiger Benutzer ausgeführt werden muss, anstatt von root. * * * * * "DISPLAY =: 0.0 / usr / bin / firefox
-new
1
@fadabiNawi Eine einfachere Möglichkeit, dies zu verwalten, besteht darin, die Cron-Leitung auf der Crontab des richtigen Benutzers zu installieren. Melden Sie sich an, wie Sie möchten, undcrontab -e
Oli
7

Ich habe diese Antwort gefunden und suche nach einer Ergänzung zu oli's:

Nach ein paar Suchen stellte ich fest, dass ich als gültiger Benutzer ausgeführt werden muss, anstatt von root.

* * * * * su fadabi -c "DISPLAY=:0.0 /usr/bin/firefox -new-window x.com/iqms/packetloss/iqmspacket2.html"; 

tq

Fadabi Nawi
quelle
Das hat geholfen, vielen Dank! Nur eine Anmerkung: Der vollständige Pfad zu Firefox ist obligatorisch, ich habe das nicht
bemerkt