CRONTAB execute la moitié d'un script shell

julien62190 Messages postés 28 Statut Membre -  
 rivalgro -
Bonjour,

j'avais posté un message afin d'etre éclairer sur un script trés simpliste qui serait exécuter avec crontab sous linux. Mais ce n'est pas grave le script que j'ai fonctionne mais je m'explique :

#!/bin/sh

killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
mozilla-firefox www.google.fr

Voila mon problème je dois lancer une tâche planifiée sous linux qui ferme la page actuelle de mozilla et en ouvre une nouvelle ( ici j'ai pris l'exemple de google.fr mais ça n'a pas d'importance c'est pour expliquer ) et cela tous les jours a 5h du matin .

je me log donc en root et je tape crontab -e , voila ce que j'y met :

*/1 * * * * /home/user1/Desktop/script.sh

ps : ici j'ai fait en sorte d'éxécuter le script toutes les minutes pour voir si cela fonctionne .

Enfait le script ferme bien la page mozilla mais il n'ouvre pas google.fr juste aprés avoir fermé la précédente .

or si je clique sur mon script.sh il ferme la page mozillia et ouvre la nouvelle .

Donc where is the problem sir ? ^^

Merci d'avance
Configuration: Linux Mandriva
Firefox 1.0.7

47 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Un script lancé par cron sous Linux est censé fermer Firefox puis ouvrir google.fr, mais l’ouverture ne se produit pas automatiquement lorsque le script est déclenché par crontab.
Plusieurs réponses expliquent que cron fonctionne avec un environnement minimal et qu’aucune variable DISPLAY n’est définie, ce qui empêche le lancement graphique et nécessite d’ajouter DISPLAY ou -display.
D’autres conseils recommandent d’expliciter le chemin et les variables, par exemple DISPLAY=:0.0 au début du script et éventuellement d’exporter le PATH ou de charger des éléments du profil.
Une approche pratique consiste à lancer Firefox avec le display approprié et à consigner les sorties du cron dans un fichier log, afin de diagnostiquer d’éventuels messages d’erreur.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    cron tourne avec un environement minimum. Il n'a donc pas la variable DISPLAY définie pour demarrer Mozilla.
    Dans le shell, faire echo $DISPLAY et mettre cette valeur dans le script:
    mozilla-firefox -display XXX www.google.fr
    0
  2. julien62190 Messages postés 28 Statut Membre
     
    merci d'avoir répondu =)

    mais cela ne fonctionne toujours pas ...

    j'ai fais :

    [root@localhost user1]# echo $DISPLAY
    :0.0

    donc j'ai :

    #!/bin/sh

    killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
    mozilla-firefox -display 0.0 www.google.fr

    Et cela ne fonctionne pas, dsl je débute sous linux .
    Que puis je faire ?
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    les : sont importants
    mozilla-firefox -display :0.0 www.google.fr

    sinon, récupérer les erreurs:
    mozilla-firefox -display :0.0 www.google.fr 1>/tmp/log 2>&1

    et voir dans /tmp/log
    0
  4. julien62190 Messages postés 28 Statut Membre
     
    j'ai fais ce que tu ma dit pour la recup des érreur , j'obtient ceci:

    "log2" 0L, 0C
    E576: viminfo: '>' manquant à la ligne 0^@
    E576: viminfo: '>' manquant à la ligne ^I+^I1^I5^@
    E576: viminfo: '>' manquant à la ligne ^I+^I2^I32^@
    E576: viminfo: '>' manquant à la ligne ^I+^I3^I32^@
    E576: viminfo: '>' manquant à la ligne ^I+^I4^I24^@
    E576: viminfo: '>' manquant à la ligne ^I+^I2^I8^@
    E576: viminfo: '>' manquant à la ligne ^I+^I3^I8^@
    E576: viminfo: '>' manquant à la ligne ^I+^I1^I3^@
    Appuyez sur ENTRÉE ou tapez une commande pour continuer

    je précise aussi que l'orsque je veux éditer crontab ( crontab -e ) j'ai le même message idem quand j'enregistre les modifications mais les modfications sont prises .
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Ca c'est des erreurs vim, le fichier .viminfo .vimrc ou .exrc doit être mauvais.

    attention aux espaces:
    mozilla-firefox -display :0.0 www.google.fr"espace" 1>/tmp/log"espace" 2>&1

    et qu'affiche cat /tmp/log
    0
  7. julien62190 Messages postés 28 Statut Membre
     
    le cat /tmp/log n'affiche rien .

    merci quand meme de te pencher sur mon cas je suis sur qu'en à beaucoup et surtout des plus complexes que celui ci.

    moi qui pensais qu'on me traittrais lol parce que c'est du basique de chez basique ... bin le basique il me chauffe la =)
    0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    chez moi ça marche
    #!/bin/bash
    killall -9 firefox-bin
    /usr/bin/firefox --display=:0.0 'www.google.fr'&


    les : sont importants
    mozilla-firefox -display :0.0 www.google.fr

    dubcek a oublié un tiret
    --display au lieu de -display
    0
  9. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Affiche plus d'info, modifier le script:

    #!/bin/sh
    set -x
    set
    killall -9 /usr/lib/mozilla-firefox-1.0.6/mozilla-firefox-bin
    mozilla-firefox -display :0.0 www.google.fr

    modifer le crontab

    */1 * * * * /home/user1/Desktop/script.sh >/tmp/log 2>&1
    0
  10. julien62190 Messages postés 28 Statut Membre
     
    merci a vous mais alors je met

    mozilla-firefox -display :0.0 www.google.fr **

    ou

    /usr/bin/firefox --display=:0.0 'www.google.fr'&

    car la , ya un =

    J'ai formaté la machine linux car le problème de vim la affiche de temps en temps qu'il enregistre pas les modif dans le crontab.

    Donc je vais reprendre a zéro.
    Merci encore.
    0
  11. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Linux, c'est pas Windaube ... on ne reformatte pas pour un problem vim, il faut corriger les fichiers de démarrage vim

    Les 2 notations display sont valides, la mienne étant la notation X d'origine.

    un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile
    si le login shell est sh, ksh ou bash
    0
  12. julien62190 Messages postés 28 Statut Membre
     
    enfait j'ai du céder le pc a un stagiaire dc je vais réinstaller linux sur un autre pc c'est pour cela .

    à la base c'était un script.sh, que veut tu dire par :

    " un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile
    si le login shell est sh, ksh ou bash "

    ?
    Merci d'avance.
    0
  13. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Au login, le shell exécute des fichiers de config, .profile, .cshrc, .kshrc qui vont définir tout l'environnement: PATH, et plein d'autres variables, affichées par la commande set.
    Le cron n'exécute pas ces fichiers et donc le script tourne avec le minimum et il peut manquer des définitions. On peut le voir avec la commande set dans le script.
    0
  14. julien62190 Messages postés 28 Statut Membre
     
    ok je vais tester ce que tu m'a donner dans le message précédent vers 12h30 maxi 13h donc je vous redirai quoi

    Merci encore
    0
  15. julien62190 Messages postés 28 Statut Membre
     
    re Bonjour,

    je n'ai pas pu tester cela mais ce midi c'est certains je test et je te dis quoi, par contre pour ce que tu m'a dit :

    un job cron n'a pas l'environnement qu'un utilisateur a après un login. Essayer de mettre dans le script : . .profile

    le .profile je le place ou dans le script ?

    merci d'avance.
    0
  16. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    au début, après le #! ... mettre:
    .<espace> .profile
    0
  17. julien62190 Messages postés 28 Statut Membre
     
    je n'ai pas rajouter le .profile et cela ne fonctionne toujours pas donc je vais tenter avec on verra bien.
    0
  18. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    Il doit bien avoir des messages. Normalement, si il n'y a pas de redirections, cron envoie un mail.
    0
  19. julien62190 Messages postés 28 Statut Membre
     
    euh je pense que tu t'es tromper de poste non ?
    0
  20. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    non, non
    0
  21. julien62190 Messages postés 28 Statut Membre
     
    euh je veux pas envoyer de mail j'aimerais juste que crontab ouvre firefox lol toutes les 30min sur un site donné et tous les jours a 5h00 du matin , pourquoi cron devrait me renvoyer un mail ?
    0
  • 1
  • 2
  • 3