Bon me revoilà avec un nouveau poste

J'ai réussi à faire un cron pour lancer un script me permettant de voir si mon application fenêtré est lancé ou non, et si elle ne l'est pas de justement la lancer.

Pour empêcher l'utilisateur de modifier cette crontab, j'aimerais faire cela avec la crontab de root, mais voilà ca coince.

Je vous mets mon bout de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
#! /bin/sh
 
export PATH=/sbin:/usr/sbin:/usr/local/sbin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/java/jdk1.5.0_08/bin/:/usr/java/jdk1.5.0_08/:.:/usr/local/progFSE/:/usr/local/progFSE/client/
export JAVA_HOME=/usr/java/jdk1.5.0_08/
export CLASSPATH=/usr/java/jdk1.5.0_08/jre/lib/rt.jar:/usr/local/progFSE/mysql-connector-java-3.0.14-production-bin.jar:/usr/local/progFSE/:.:/usr/local/progFSE/client/
export DISPLAY=:0.0
/bin/echo "passe ici"
 
if [ -n "$(/bin/pidof java client )" ]
then /bin/echo "le programme tourne"
else /usr/java/jdk1.5.0_08/bin/java client
fi
Ceci est donc le script shell me permettant appelé par cron pour vérifier si mon appli fenêtré est lancé ou non.

La variable DISPLAY pour le cron utilisateur avait cette forme là :
export DISPLAY=:0

mais un export sous root m'a permis de voir que root utilisait ca : DISPLAY=:0.0
J'ai donc fait comme root, mais ça me donne cette erreur dans mon fichier de log :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
passe ici
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
 
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
	at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
	at sun.awt.X11GraphicsEnvironment.access$000(X11GraphicsEnvironment.java:53)
	at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:142)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:164)
	at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
	at java.awt.Window.init(Window.java:270)
	at java.awt.Window.<init>(Window.java:318)
	at java.awt.Frame.<init>(Frame.java:419)
	at java.awt.Frame.<init>(Frame.java:384)
	at javax.swing.JFrame.<init>(JFrame.java:150)
	at client.<init>(client.java:274)
	at client.main(client.java:463)
Ca marche donc avec le cron de l'utilisateur mais pas celui de root, alors que j'ai bien remplacé le path et le display de l'utilisateur par celui de root.
J'ai loupé quelque chose ? Si oui quoi ?


Merci.