Page 1 sur 1

xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 29 mars 2021 18:02
par lesjno
Bonjour,
J'ai besoin, dans un script php, d'afficher un fichier pdf avec xreader. Le fichier est une URL.
Le script php est lancé par un cron.
Pour analyser le problème, j'ai isolé la commande et fait l'essai avec l'exemple de commande suivante :

DISPLAY=:0.0 xreader "https://www.orphoz.com/uploads/media/pdf-exemple.pdf" &

Lorsque cette commande est lancée depuis un terminal, tout se passe bien : le fichier est bien affiché.
Mais via le cron, xreader s'ouvre sur la page d'erreur "Impossible d'ouvrir le document".
A partir du menu "fichiers/Récents" qui liste les derniers fichiers ouverts, les fichiers locaux s'ouvrent bien mais les fichiers issus d'une URL donnent tous la même page d'erreur. (Et pourtant ces fichiers s'ouvrent bien lorsque xreader est lancé depuis le terminal !)
Je suppose qu'il y a des droits à régler quelque part : une idée ?
Merci d'avance !

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 29 mars 2021 19:52
par falke
Salut,

C'est sensé être "interractif" Et surtout pq en tâche de fond " & " ?

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 29 mars 2021 21:21
par lesjno
Le système que je développe est sensé avoir un fonctionnement entièrement automatique, sans quasiment aucune interaction avec un utilisateur. Le système affiche des documents (photos, vidéo, pdf ...). Pour les PDF, seule la 1ère page a besoin d'être affichée, si possible la 2eme également mais sur le même écran. L'utilisateur interagit avec le système en appuyant sur un bouton pour passer au document suivant, c'est tout. D'où le lancement à partir d'un script en cron qui doit "relancer" le script s'il est interrompu (au cas où).
On peut enlever le "&", effectivement. Mais là n'est pas le problème.

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 29 mars 2021 21:28
par falke
Et pq tu lances pas ton script dans une boucle sans fin ?

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 29 mars 2021 23:21
par lesjno
C'est déjà dans une boucle sans fin.
Et si ça plante pour une raison ou pour une autre le cron doit permettre de relancer.

Ma question n'est pas d'avoir des avis sur d'autres façons de faire. Il y a certainement un problème de droits d'accès quelque part qui empêche xreader d'ouvrir une URL lorsque l'appel de fait par cron. J'aimerais trouver comment effectuer ce réglage.

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : mar. 30 mars 2021 07:10
par falke
Bonjour,

Et bien, si tu le prends comme ça, il ne me reste plus qu'à trouver souhaiter bonne chance pour la résolution de ton problème.

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : mar. 30 mars 2021 10:33
par david37
Salut,

Je suppose que la commande DISPLAY:0.0 ne fait pas son travail dans cron.
Pour ma part, j'avais déjà eu ce problème lorsque j'ai voulu réaliser un script et le placer dans le cron. Il faut pouvoir spécifier l'environnement à utiliser dans le cron.

Une première chose à faire et de voir les retours du terminal quand tu lances ton script avec:

Code : Tout sélectionner

~$ env -i sh -c DISPLAY=:0.0 xreader "https://www.orphoz.com/uploads/media/pdf-exemple.pdf" &
ça devrait déjà te donner des pistes.

Pour ma part, dans mon script, j'avais du rajouter ces deux lignes:

Code : Tout sélectionner

PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
Et après ça marchait nickel. Je suis sous xfce donc je sais pas quelle sera la commande si tu es sous mate ou cinnamon mais tu pourras surement trouver ça sur le net.

Tu as aussi ce tuto pour débugger son cron: https://stackoverflow.com/tags/cron/info

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : mar. 30 mars 2021 19:44
par lesjno
MERCI david37 !
La réponse est 100% pertinente :D
Effectivement, il faut faire ce que tu dis ici :
PID=$(pgrep xfce4-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
en transposant pour cinnamon et le tour est joué !
(En fait, j'ai bien un PID "cinnamon-session", mais le pgrep ne marche pas. Je ne sais pas pourquoi mais ce n'est pas grave car je sais le trouver d'une autre façon).

Encore merci !
Je passe le sujet en résolu.

Re: xreader : lecture impossible d'un URL pdf via cron

Posté : lun. 17 mai 2021 07:59
par alain
Bonjour.

Sujet archivé (en lecture seule) car résolu.
Si besoin de rouvrir faire un MP à un membre de l'équipe ;)