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 $_=$_{$_};"
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 $_=$_{$_};"
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.
Le 15/09/2012 16:29, Eric S. a écrit :
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
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.
.....
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 $_=$_{$_};"
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 $_=$_{$_};"