Forum Linux.débutant script ou application dans crontab ne se lance pas

Posté par . Licence CC by-sa.
0
30
avr.
2016

Bonjour j'ai un problème de compréhension avec crontab:
chmod +x monScript.sh
crontab -e
05 13 * * * /home/monScript.sh >>/home/test.log

mon script :
#!/bin/bash
/home/./xflux -l 48.8534100 -g 2.3488000
echo "flux est lancé"

J'obtiens bien dans le log un retour de flux ainsi que de la commande echo mais flux ne se lance pas.
Même chose avec n'importe quel script ou commande

  • # Bonjour

    Posté par . Évalué à 2. Dernière modification le 30/04/16 à 14:08.

    Qu’as-tu comme sortie de xflux dans ton fichier log ?

    Une idée comme ça… ce programme nécessite sûrement d’être lancé sous X, or ce n’est pas le cas si tu le lances à l’aide de cron (en tous cas pas simplement comme ça).

    Même chose avec n'importe quel script ou commande

    Étonnant… crond est bien lancé ?

    Par ailleurs si j’en crois le wiki de Arch :

    Various daemons exist to handle the automatic startup of the xflux package.

    https://wiki.archlinux.org/index.php?title=Backlight&redirect=no#Xflux

    Pour dire qu’utiliser cron pour lancer ce genre de programme ce ne doit pas être une bonne solution… Tu n’as pas un script d’init pour xflux ? Est-ce que ce programme a une interface de configuration ?

    /home/nocrazy/Documents/./xflux -l 48.8534100 -g 2.3488000

    Ton exécutable xflux est dans ton dossier /home/nocrazy/Documents ? o_O

    Autre chose, tu peux utiliser 2>&1 à la fin d’une commande pour rediriger la sortie d’erreur sur la sortie standard (qui est, elle, redirigée dans ton fichier grâce au ">> fichier.log")

  • # err

    Posté par . Évalué à 1.

    Rajoute dans la crontab la redirection du flux d'erreur dans le flux standard. Comme cela, tu verra si une erreur se produit :

    05 13 * * * /home/monScript.sh >>/home/test.log 2>&1

  • # ca fonction avec DISPLAY

    Posté par . Évalué à 1.

    Merci pour vos réponses.
    Il fallait rajouter Display:0.0 de cette façon:
    42 21 * * * DISPLAY=:0.0 /home/./fluxStart.sh >>/home/cron.log 2>&1
    Display doit servir à indiquer l'écran.

    Par contre ça ne fonctionne toujours pas au démarrage du pc avec @reboot en paramètre:
    @reboot DISPLAY=:0.0 /home/./fluxStart.sh >>/home/cron.log 2>&1 :(

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.