Tache de fond

Résolu/Fermé
Fab - 18 mars 2008 à 11:12
 Fab - 18 mars 2008 à 16:05
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

2 réponses

marc[i1] Messages postés 2573 Date d'inscription vendredi 1 avril 2005 Statut Contributeur Dernière intervention 6 septembre 2008 382
18 mars 2008 à 11:26
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
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
sov^36 Messages postés 3621 Date d'inscription jeudi 5 avril 2007 Statut Contributeur Dernière intervention 8 juillet 2008 715
18 mars 2008 à 14:03
SAlut,
avec une fonction peut-être :

#!/bin/bash

mon_script()
{
while true; do
sleep 10
done 
}

mon_script &

0
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