Tache de fond

Résolu
Fab -  
 Fab -
Bonjour à tous,

Je butte sur un problème tout simple

Je veux lancer un script bloquant depuis le rc2.d au boot
Je fais un lien symbolique genre : S25blabla
mais mon script est bloquant, la machine ne finit donc pas son initialisation
Le script pourrait ressembler à ça : essai.sh:

#! /bin/sh

while true; do
sleep 10
done

Pour que ça marche je suis obligé de créer un autre script essai :

#! /bin/sh

sh /home/fab/essai.sh &

N'y a-t-il pas un moyen plus simple de tout mettre dans le même script, je n'arrive pas à trouver ?

Merci
Configuration: Linux Debian
Mozilla 1.8.1.12

2 réponses

  1. marc[i1] Messages postés 2603 Statut Contributeur 382
     
    Salut,

    while demande de vérifier une valeur !

    Cette construction teste une condition au début de la boucle et continue à boucler tant que la condition est vraie (renvoie un 0 comme code de sortie).

    Pour tester, il faut une valeur de référence, ton while n'en a pas :
    while true << vrai en fonction de quoi ?

    voilà :)
    0
    1. Fab
       
      Salut Marc,

      Pour le while c'est ok il y a pas de problème il tourne à l'infinie, mais c'est voulu. D'ailleurs si je lance le deuxième script j'obtiens ce que je veux.

      Ma question est : comment avec ces deux script en faire qu'un pour le même résultat ?
      0
  2. sov^36 Messages postés 3624 Date d'inscription   Statut Contributeur Dernière intervention   717
     
    SAlut,
    avec une fonction peut-être :

    #!/bin/bash
    
    mon_script()
    {
    while true; do
    sleep 10
    done 
    }
    
    mon_script &
    

    0
    1. Fab
       
      Oui finalement on peut même oublier la fonction et faire :

      #!/bin/bash

      (
      while true; do
      sleep 10
      done
      ) &

      attention c'est des parenthèses, remarquez ça fonctionne peut-être avec {} ?

      Merci pour vos aides !!
      0