Search the Community
Showing results for tags 'crontab'.
-
Bonjour à tous, J'ai voulu faire un script afin de créer un diaporama avec les images de fond du bureau. Je me suis inspirée du post de Cotaka posté il y a 1 an que j'ai modifié un peu. Voici mon problème, il fonctionne nickel quand je l'exécute depuis la console en tapant: python fond.py par contre si je fais: sudo ./fond.py il se lance correctement mais l'image de fond ne change pas. Quelle est la différence entre ces 2 façons? Car du coup quand il s'exécute avec CronTab, le script s'exécute bien (le fichier .log est correctement modifié) mais le fond ne change pas.. Est-ce que c'est un problème de droits incorrects quand il tente de faire: os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"')? voici le code de mon script de diaporama: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Ce script permet de changer le fond d'écran toutes les 15 min avec CronTab Pour le tester depuis la console: ne pas le lancer "sudo ./fond.py" mais "python fond.py" (Pourquoi??) ''' import os # Configuration des variables chemin = '/home/liliana/fond-ecran/' # dossier contenant les img de fond # On compte le nombre d'images de fond qu'il y a dans le dossier nb_img = (len(os.listdir( chemin )) - 3) # on enlève 3 car il y les fichiers fond.py, liscatoi et num-img.log # On va checker ou créer le fichier num-img.log pour connaitre le numéro de l'image de fond en cours if os.path.isfile(chemin+"num-img.log"): print("Le fichier num-img.log existe: on met son contenu ds la variable num_img") fichier = open(chemin+"num-img.log", "r") num_img = fichier.read() fichier.close() else: # num-img.log n'existe pas print("Le fichier num-img.log n'existe pas -> on le créer et on inscrit 1 dedans pour 1ère img") num_img = 1 # on cree la variable fichier = open(chemin+"num-img.log", "a") fichier.write(str(num_img)) fichier.close() # On charge l'image portant le numéro contenu dans $num_img os.system('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"') #print('gsettings set org.gnome.desktop.background picture-uri "file://'+str(chemin)+str(num_img)+'.jpg"') print("Image de fond " + str(num_img) + ".jpg chargée..") # Puis on met +1 dans num-img.log num_img = (int(num_img) + 1) if num_img > nb_img: # si le numéro de l'image est > que le nombre d'img dans le dossier alors num_img = 1 # on revient à la 1ère img os.remove(chemin+"num-img.log") # on efface le fichier num-img.log fichier = open(chemin+"num-img.log", "a") # pour le recreer avec + 1 fichier.write(str(num_img)) fichier.close() print("Fichier num-img.log + 1") Un grand merci d'avance :-) (source du post de Cotaka: http://forum.elementaryos-fr.org/topic/1977-résolu-python-mettre-en-background-depuis-le-web-toutes-les-x-secondes)