IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script sh / boucle sans fin qui s'arrête toute seule


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut Script sh / boucle sans fin qui s'arrête toute seule
    Bonjour, j'ai un petit script sh qui va copier un fichier xml dans une box domotique et qui va le coller dans le syno DS212j qui exécute le script.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/sh
    exec >>/volume1/log/dlvera_sdata_xml-log.txt 2>&1
    cd /tmp
    while :; do
      sleep 30
      date
      wget "http://192.168.0.110:3480/data_request?id=sdata&output_format=xml" -O /volume1/web/vera.xml
    done
    C'est donc une bouche sans fin pour copier toutes les 30 secondes le fichier xml.

    Le problème est que cette bouche sans fil s'arrête au bout de 5h environ (ce n'est pas fixe)

    Est-il possible que ce soit le fait que j'aille lire de temps en temps dans le fichier collé qui pose problème?

    Merci de vos avis.

    EDIT : Le log ne montre aucune erreur à la dernière écriture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Fri Sep 14 14:25:06 Europe/Brussels 2012
    --2012-09-14 14:25:06--  http://192.168.0.110:3480/data_request?id=sdata&output_format=xml
    Connecting to 192.168.0.110:3480... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [xml]
    Saving to: `/volume1/web/vera.xml'
     
         0K .......                                                9.45M=0.001s
     
    2012-09-14 14:25:06 (9.45 MB/s) - `/volume1/web/vera.xml' saved [7594]

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Citation Envoyé par FaTaL25 Voir le message
    Est-il possible que ce soit le fait que j'aille lire de temps en temps dans le fichier collé qui pose problème?
    Si cela impose un lock sur le fichier, et que donc l'ecriture est impossible, ca peut effectivement provoquer une erreur, et peut-etre une sortie du script
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    ca peut effectivement provoquer une erreur, et peut-etre une sortie du script

    Y a t'il une possibilité d'empêcher une sortie du script sur erreur?

    Que ce soit quand l'émetteur du fichier xml est déconnecté ou quand on vient lire dans le fichier xml collé?

    Si ce n'est pas possible, est-il possible de contrôler qu'un script est en cours d'exécution sur le synology et s'il n'y est pas, le relancer?

    Merci d'avance.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 539
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 361
    Points
    19 361
    Par défaut
    Bonjour,

    ajoute un set -x avant le démarrage de la boucle, et montre-nous le log de la dernière boucle; ça montrera davantage ce qu'il se passe.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    bonjour à tous,

    en fait, je commence seulement dans le shell...
    et je viens de m'apercevoir que mon script s'arrête si je ferme la fenêtre PuTTy...

    En gros, mon script tourne sur un Syno DS212j et pour lancer le script, je me connecte en SSH, j'ouvre PuTTy et je tape :

    /usr/syno/etc/rc.d/dlvera_sdata_xml.sh

    Dès que je ferme PuTTy, mon script s'arrête

    Il n'y a pas moyen de lancer mon script en autonome sur le syno?

    Voici mon script actuel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/bin/sh
    screen -d -m MonSuperDemon
    exec >>/volume1/log/dlvera_sdata_xml-log.txt 2>&1
    cd /tmp
    set -x
    while :; do
      sleep 30
      date
      wget --tries=0 "http://192.168.0.110:3480/data_request?id=sdata&output_format=xml" -O /volume1/web/vera.xml
    done
    j'ai essayé avec la commande screen mais apparemment, il ne la connaît pas...
    Merci de votre aide.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    En fait, j'ai créé un script appelé dlvera_sdata1.sh qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #!/bin/sh
    nohup /usr/syno/etc/rc.d/dlvera_sdata2.sh &
    exit
    et dans le script dlvera_sdata2.sh j'ai mis mon code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/bin/sh
    exec >>/volume1/log/dlvera_sdata_xml-log.txt 2>&1
    cd /tmp
    set -x
    while :; do
      sleep 30
      date
      wget --tries=0 "http://192.168.0.110:3480/data_request?id=sdata&output_format=xml" -O /volume1/web/vera.xml
    done

    En faisant ça, une tâche apparaît bien en faisant ps mais le script (tâche) s'arrête quand je ferme le terminal...

    Une idée?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    En fait, je ne connaissais pas très bien l'environnement et le script s'arrêtait quand je fermais le terminal...

    Résolu! merci.

  8. #8
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Pour qu'un script continue à s'exécuter, on peut le lancer avec screen en faisant un 'detach'. On peut se reconnecter plus tard pour voir où en est l'éxécution.
    Quelques infos ici : Screen, qu’est-ce donc ? et une fois installé "man screen" donnera les options de la version installée.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par FaTaL25 Voir le message
    Dès que je ferme PuTTy, mon script s'arrête
    Il n'y a pas moyen de lancer mon script en autonome sur le syno?
    Pour lancer une commande (sans aucun affichage) à intervalles réguliers, tu peux aussi regarder du côté de 'cron' et 'at' (man cron ou man at). En principe, si je ne m'abuse, c'est la méthode standard pour ce genre de chose.

    )jack(

  10. #10
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Tu peux aussi utiliser nohup pour lancer une commande dont tu ne souhaites pas qu'elle s'arrête à la fermeture du terminal.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. QSpinBox qui boucle sans fin
    Par betonfrance dans le forum Débuter
    Réponses: 4
    Dernier message: 21/12/2011, 14h23
  2. Disque dur qui s'arrête tout seul
    Par Sumoner dans le forum Composants
    Réponses: 1
    Dernier message: 26/01/2010, 15h03
  3. [MySQL] Script php avec insertion dans base de données qui s'arrête tout seul
    Par tofito dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 04/12/2008, 22h39
  4. portable qui s'arrête tout seul : chargeur, alim ou cm ?
    Par pepper18 dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 16/11/2006, 19h36
  5. Ordinateur qui s'arrête tout seul
    Par tesla dans le forum Ordinateurs
    Réponses: 7
    Dernier message: 13/03/2006, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo