Programme Perl avec Tk en arrière plan sans l'utilisateur loggé

Le
Yves Pointin
Bonjour,

Mon problème est de faire exécuter sous Linux RedHat un programme Perl
utilisant Tk::Image en arrière plan régulièrement 24h/24 sans
l'utilisateur loggé. Si l'utilisateur est loggé, il a une fenêtre X11
et le programme s'exécute normalement. Si je ne délogge, j'ai le message

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

couldn't connect to display ":0" at
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Tk/MainWindow.pm
line 55.
MainWindow->new() at /home/pointin/bin/add_background.pl line 183
job 167694 at 2012-09-07 13:52

Comment faire ?

Cordialement,
--
Dr. POINTIN Yves B.
perl -e "$_='.frontermpclv-bunigc.@optinoinY.P';1 while
s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
eric
Le #24786012
Yves Pointin
Bonjour,

Mon problème est de faire exécuter sous Linux RedHat un programme Perl
utilisant Tk::Image en arrière plan régulièrement 24h/24 sans
l'utilisateur loggé. Si l'utilisateur est loggé, il a une fenêtre X11
et le programme s'exécute normalement. Si je ne délogge, j'ai le message

Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

couldn't connect to display ":0" at
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Tk/MainWindow.pm
line 55.
MainWindow->new() at /home/pointin/bin/add_background.pl line 183
job 167694 at 2012-09-07 13:52

Comment faire ?

Cordialement,



Bonjour,

Dsl pour cette réponse un peu tardive...
Ce que tu pourrais faire c'est de démarrer un serveur Xvfb sur un port
bien choisi. Par exemple : /usr/bin/Xvfb :99999 &
Tu peux mettre ça dans /etc/rc.local pour que ce soit exécuté à chaque
démarrage de la machine.

Ensuite quand tu peux lancer ton programme en lui spécifiant de se
connecter au port 99999.

Mes 2 cents.
--
Eric S.
schirrms2
Le #24786852
Bonjour,

Le 15/09/2012 16:29, Eric S. a écrit :
Ce que tu pourrais faire c'est de démarrer un serveur Xvfb sur un port
bien choisi. Par exemple : /usr/bin/Xvfb :99999 &



Mes 2 cents à moi :
Les n° de ports, bien qu'exprimés en décimal, sont des valeurs binaires
codés sur 16 bits (2^16) donc, en décimal, comprises entre 0 (à éviter
!) et 65535 (à éviter également)

Cordialement,
Pascal
Nicolas George
Le #24786912
schirrms2 , dans le message écrit :
Les n° de ports, bien qu'exprimés en décimal, sont des valeurs binaires
codés sur 16 bits (2^16) donc, en décimal, comprises entre 0 (à éviter
!) et 65535 (à éviter également)



0 n'est juste pas possible, puisqu'il a une signification particulière pour
l'API.

Mais si on va par là, on peut souligner que le numéro après les : dans un
nom de serveur n'est pas un port TCP/IP. Si le serveur écoute en TCP/IP, il
le fera sur le port n+6000, donc un serveur lancé sur un numéro plus grand
que 59536 ne pourra pas, mais il fonctionnera très bien avec une socket Unix
dans /tmp.
Yves Pointin
Le #24792682
Le 15/09/2012 21:00, Nicolas George a écrit :
.....

Mais si on va par là, on peut souligner que le numéro après les : dans un
nom de serveur n'est pas un port TCP/IP. Si le serveur écoute en TCP/IP, il
le fera sur le port n+6000, donc un serveur lancé sur un numéro plus grand
que 59536 ne pourra pas, mais il fonctionnera très bien avec une socket Unix
dans /tmp.


Bonjour,

Merci, j'essaierais mais plutôt pour scilab.5.* basé sur Tk pour lequel
j'avais le même problème. Pour mon programme perl, j'ai en fait remplacé
Tk par GD.

--
Dr. POINTIN Yves B.
perl -e "$_='';1 while
s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Nicolas George
Le #24792702
Yves Pointin , dans le message a écrit :
Pour mon programme perl, j'ai en fait remplacé
Tk par GD.



Il y a un quelconque intérêt à GD par rapport à Cairo ?
Yves Pointin
Le #24793692
Le 18/09/2012 10:32, Nicolas George a écrit :
Yves Pointin , dans le message a écrit :
Pour mon programme perl, j'ai en fait remplacé
Tk par GD.



Il y a un quelconque intérêt à GD par rapport à Cairo ?



Je ne sais pas, mais comme j'ai trouvé and GD comment faire ce que je
voulais faire (remplacer les pixels noirs d'une image PNG par ceux d'une
autre image de même taille), je n'ai pas cherché plus loin.

--
Dr. POINTIN Yves B.
perl -e "$_='';1 while
s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Publicité
Poster une réponse
Anonyme