Question #166990 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/166990

Description changed to:
Hi there,

I have built a Sikuli Script that runs successfully from command line in
linux:  OS  Debian 6.0.2  GNOME Desktop Version 2.30.2

This is how I would run the script directly (using full paths)  in my user 
session:
/usr/share/my-path/Sikuli-IDE/sikuli-ide.sh my-path/mydemo.sikuli.skl

Next I want to be able to run this script daily at a specified time
using crontab (my username).

This  https://help.ubuntu.com/community/CronHowto says that it is
possible to run gui applications via cronjobs. This can be done by
telling cron which display to use.

So I have followed the suggestion when specifying the job in the crontab
(my username)

15 15 * * * env DISPLAY=:0 /usr/share/my-path/Sikuli-IDE/sikuli-ide.sh
my-path/mydemo.sikuli.skl

However, this error occurs when the cronjob runs  (the error is emailed
from the cron-daemon):

--------------------------------------
No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window 
server using ':0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at 
sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:62)
        at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:166)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at 
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
        at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at java.awt.Toolkit$2.run(Toolkit.java:849)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)
        at javax.swing.ImageIcon.<init>(ImageIcon.java:136)
        at javax.swing.ImageIcon.<init>(ImageIcon.java:155)
        at org.sikuli.ide.SikuliIDE.getIconResource(SikuliIDE.java:106)
        at org.sikuli.ide.SikuliIDE.<clinit>(SikuliIDE.java:85)
Could not find the main class: org.sikuli.ide.SikuliIDE. Program will exit.
-----------------------------------------

Do you have any other suggestions?  Surely other folks must successfully
execute their Sikuli Scripts via linux cronjobs.

Thanks.
Carla

ADDENDUM:
This is how I solved the issue.  More reading tells me this:  Gnome Schedule 
(crontab) does not support setting environment variables for recurrent tasks 
... In the meantime, manually create a script that first defines DISPLAY 
variable and then calls the graphical application.

This shell script  runs the Sikuli Script successfully from the crontab.
The secret ingredient was the line "xhost local:"   Without it, setting
the DISPLAY variable did nothing.

#!bin/bash
DISPLAY=:0; export DISPLAY
xhost +local:
/usr/share/my-path/Sikuli-IDE/sikuli-ide.sh my-path/mydemo.sikuli.skl
#end script

---
cg

-- 
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.

_______________________________________________
Mailing list: https://launchpad.net/~sikuli-driver
Post to     : sikuli-driver@lists.launchpad.net
Unsubscribe : https://launchpad.net/~sikuli-driver
More help   : https://help.launchpad.net/ListHelp

Reply via email to