le job "wallpapers" s'exécute bien toutes les 5 minutes (je le vois au
fichier de log :
$ cat ~/Logs/wallpapers.log
[...]
********************************************************************************
Le 24 mai 2015 à 10H45:01
File
'/home/yt/Images/Backgrounds/2014_08_05__16_11_34__DSC_0019_Ainsa_Espagne.JPG'
opened.
********************************************************************************
Le 24 mai 2015 à 10H50:01
File '/home/yt/Images/Backgrounds/Barley.jpg' opened.
le fichiers "wallpapers" est le compilé de "wallpapers.c" :
$ lal wall*
-rwsr-xr-x 1 root root 7337 mai 24 08:27 wallpapers*
-rw-r--r-- 1 yt yt 185 mai 24 08:26 wallpapers.c
-rwsr-xr-x 1 root root 555 mai 24 10:04 wallpapers.sh*
lequel n'est qu'un lanceur de "wallpapers.sh" :
$ cat wallpapers.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
setuid( 0 );
system( "/home/yt/bin/root_scripts/wallpapers.sh" );
return 0;
}
le contenu de "wallpapers.sh" étant :
$ cat wallpapers.sh
#!/usr/bin/env bash
WALLPAPERS="/home/yt/Images/Backgrounds"
LOG="/home/yt/Logs/wallpapers.log"
ALIST=( `ls -w1 $WALLPAPERS` )
RANGE=${#ALIST[@]}
let "number = $RANDOM"
let LASTNUM="`cat $WALLPAPERS/.last` + $number"
let "number = $LASTNUM % $RANGE"
echo $number > $WALLPAPERS/.last
echo
"********************************************************************************"
>> $LOG
date '+Le %d %B %Y à %HH%M:%S' >> $LOG
echo "File '$WALLPAPERS/${ALIST[$number]}' opened." >> $LOG
/usr/bin/feh --bg-scale $WALLPAPERS/${ALIST[$number]} >> $LOG
le fichier $WALLPAPERS/.last change correctement :
┬─[yt@d620:~/bin/root_scripts]─[10:06:02]
╰─>$ cat ~/Images/Backgrounds/.last
109
┬─[yt@d620:~/bin/root_scripts]─[10:06:20]
╰─>$ cat ~/Images/Backgrounds/.last
24
┬─[yt@d620:~/bin/root_scripts]─[10:57:42]
╰─>$ cat ~/Images/Backgrounds/.last
3
d'ailleurs, le nom du fichier sélectionné varie bien (cf.log)
MAIS, et c'est là ma question, feh ne met pas à jour l'image (quand feh
tourne par cron), c'est la ligne :
/usr/bin/feh --bg-scale $WALLPAPERS/${ALIST[$number]} >> $LOG
de mon script.
alors j'ai imaginé que le problème provenanit du fait que feh est
éxécuté sous root par cron, alors j'ai essayé au term :
$ sudo feh --bg-scale
/home/yt/Images/Backgrounds/beautiful_italian_landscape-wallpaper-1680x1050.jpg
donc exécuté feh en tant que root et ça marche bien mon bureau change de
fond d'écran.
dans le fichier de log, je n'ai pas d'erreur provenant de feh.
à votre avis qu'est-ce qui empèche feh de faire son boulot ?
où est mon erreur ?
où comment mieux débugger ce que j'ai fait ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Doug713705
Le 24-05-2015, Une Bévue nous expliquait dans fr.comp.os.linux.configuration (<mjs4fc$scf$) :
alors j'ai imaginé que le problème provenanit du fait que feh est éxécuté sous root par cron, alors j'ai essayé au term : $ sudo feh --bg-scale /home/yt/Images/Backgrounds/beautiful_italian_landscape-wallpaper-1680x1050.jpg
donc exécuté feh en tant que root et ça marche bien mon bureau change de fond d'écran. dans le fichier de log, je n'ai pas d'erreur provenant de feh.
à votre avis qu'est-ce qui empèche feh de faire son boulot ? où est mon erreur ? où comment mieux débugger ce que j'ai fait ?
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur quel écran afficher l'image ?
Essaie avec: export DISPLAY=:0.0 feh...
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
-- Mais l'ombre des plaisirs s'enfuit Toujours plus loin vers l'inconnu. -- H.F. Thiéfaine, La môme kaléïdoscope
Le 24-05-2015, Une Bévue nous expliquait dans
fr.comp.os.linux.configuration
(<mjs4fc$scf$1@shakotay.alphanet.ch>) :
alors j'ai imaginé que le problème provenanit du fait que feh est
éxécuté sous root par cron, alors j'ai essayé au term :
$ sudo feh --bg-scale
/home/yt/Images/Backgrounds/beautiful_italian_landscape-wallpaper-1680x1050.jpg
donc exécuté feh en tant que root et ça marche bien mon bureau change de
fond d'écran.
dans le fichier de log, je n'ai pas d'erreur provenant de feh.
à votre avis qu'est-ce qui empèche feh de faire son boulot ?
où est mon erreur ?
où comment mieux débugger ce que j'ai fait ?
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur
quel écran afficher l'image ?
Essaie avec:
export DISPLAY=:0.0 feh...
Par ailleurs si le but de ton script est de remplacer l'image de fond
d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh
gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh:
-f, --filelist file
-z, --randomize
-r, --recursive
-D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
--
Mais l'ombre des plaisirs s'enfuit
Toujours plus loin vers l'inconnu.
-- H.F. Thiéfaine, La môme kaléïdoscope
Le 24-05-2015, Une Bévue nous expliquait dans fr.comp.os.linux.configuration (<mjs4fc$scf$) :
alors j'ai imaginé que le problème provenanit du fait que feh est éxécuté sous root par cron, alors j'ai essayé au term : $ sudo feh --bg-scale /home/yt/Images/Backgrounds/beautiful_italian_landscape-wallpaper-1680x1050.jpg
donc exécuté feh en tant que root et ça marche bien mon bureau change de fond d'écran. dans le fichier de log, je n'ai pas d'erreur provenant de feh.
à votre avis qu'est-ce qui empèche feh de faire son boulot ? où est mon erreur ? où comment mieux débugger ce que j'ai fait ?
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur quel écran afficher l'image ?
Essaie avec: export DISPLAY=:0.0 feh...
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
-- Mais l'ombre des plaisirs s'enfuit Toujours plus loin vers l'inconnu. -- H.F. Thiéfaine, La môme kaléïdoscope
Une Bévue
On 24/05/2015 11:28, Doug713705 wrote:
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur quel écran afficher l'image ?
Essaie avec: export DISPLAY=:0.0 feh...
euh, ben je ne pense pas mais c'est à vérifier, en tout cas : $ feh --bg-scale mon-image.jpg ça roule avec ou sans sudo.
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Ah, OK, merci pour l'info, je regarderai ça asap.
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
ok man fek koâ.
Merci bien.
On 24/05/2015 11:28, Doug713705 wrote:
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur
quel écran afficher l'image ?
Essaie avec:
export DISPLAY=:0.0 feh...
euh, ben je ne pense pas mais c'est à vérifier, en tout cas :
$ feh --bg-scale mon-image.jpg
ça roule avec ou sans sudo.
Par ailleurs si le but de ton script est de remplacer l'image de fond
d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh
gère ça tout seul !
Ah, OK, merci pour l'info, je regarderai ça asap.
Quelques options que pourraient être utiles extraites de man feh:
-f, --filelist file
-z, --randomize
-r, --recursive
-D, --slideshow-delay float
Dasn le fait que feh a besoin d'avoir accès à $DISPLAY pour savoir sur quel écran afficher l'image ?
Essaie avec: export DISPLAY=:0.0 feh...
euh, ben je ne pense pas mais c'est à vérifier, en tout cas : $ feh --bg-scale mon-image.jpg ça roule avec ou sans sudo.
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Ah, OK, merci pour l'info, je regarderai ça asap.
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
ok man fek koâ.
Merci bien.
Une Bévue
On 24/05/2015 11:28, Doug713705 wrote:
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
C'est grosso-modo ce qu'il faut faire, et ça marche sans cron...
la même commande en plus clair : /usr/bin/feh --auto-zoom --fullscreen --randomize --slideshow-delay 10.0 /home/yt/Images/Backgrounds
je n'ai pas mis l'option "-r, --recursive" vu que mon répertoire est plat.
Encore merci à Doug.
RTFM ;-)
On 24/05/2015 11:28, Doug713705 wrote:
Par ailleurs si le but de ton script est de remplacer l'image de fond
d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh
gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh:
-f, --filelist file
-z, --randomize
-r, --recursive
-D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
C'est grosso-modo ce qu'il faut faire, et ça marche sans cron...
Par ailleurs si le but de ton script est de remplacer l'image de fond d'écran à intervalle régulier, tu n'as pas besoin de cron pour ça ; feh gère ça tout seul !
Quelques options que pourraient être utiles extraites de man feh: -f, --filelist file -z, --randomize -r, --recursive -D, --slideshow-delay float
Ce sont des pistes, je n'ai pas essayé moi même.
C'est grosso-modo ce qu'il faut faire, et ça marche sans cron...