2009-12-02 3 views
0

J'essaie d'exécuter un cron qui implique l'ouverture d'un programme graphique et nécessite donc un ensemble DISPLAY. J'ai essayé ce qui suit:cron qui a besoin d'un affichage

*  *  *  *  *  DISPLAY=:0.0 /opt/firefox/firefox -print .. 

Cela ne fonctionne pas et même si je l'essaie sur ma console la commande ci-dessus ne fonctionne pas. Il s'assoit juste là ne faisant rien. Maintenant, la seule façon dont cela fonctionne est la suivante:

$ echo $DISPLAY 
localhost:10.0 
$ crontab -l 
*  *  *  *  *  DISPLAY=:10.0 /opt/firefox/firefox -print .. 

et cela fonctionne si je reste ouvert une session dans la machine et attendre le cron pour exécuter.

Existe-t-il un moyen viable de faire ce travail? le seul moyen de maigrir est de toujours rester connecté à la machine (que je veux éviter).

+0

Si vous n'êtes pas connecté, sur quel serveur X souhaitez-vous l'afficher? –

Répondre

2

Je ne pense pas qu'il existe un réglage simple pour que cela fonctionne.

Cependant, Xvfb (X de Virtual Frame Buffer) devrait être en mesure de vous donner un affichage factice X qui devrait satisfaire vos besoins:

http://www.xfree86.org/4.0.1/Xvfb.1.html

+0

Il semble que la bonne chose à faire et j'ai lu sur Xvfsb. C'est un peu pénible de faire fonctionner ce système en premier lieu, alors j'ai juste utilisé un VncServer à la place. – ankimal

0

Je ne sais pas si vous pouvez le faire. Mais si vous pouvez le faire, avez-vous vérifié si le serveur X s'exécute lorsque vous exécutez cette commande?

0

Je pense que Nate C-K a la bonne idée, voici un guide sur l'utilisation Xvfb and a headless Firefox. Le blog d'Adrian Holovaty a aussi une discussion sur un similar need (les commentaires sont utiles).

Si vous avez juste besoin d'émuler un navigateur, il y a toujours HTMLUnit et twill.