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 :
Ceci est donc le script shell me permettant appelé par cron pour vérifier si mon appli fenêtré est lancé ou non.
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
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 :
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.
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)
J'ai loupé quelque chose ? Si oui quoi ?
Merci.
Partager