Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

boucle récursive

3 réponses
Avatar
Thomas
bonjour :-)


j'ai pas envie de devenir un spécialiste en script sh,

et avec mes connaissances actuelles, j'ai simplement eu l'idée de faire
une boucle récursive :


vvvvvvvv

#!/bin/sh -x -

sleep 10 || exit
`dirname "$0"`/../../vpn/lancement-maintient-vpn || exit
"$0" &

^^^^^^^^


je voulais juste savoir si ça ne risquait pas de poser de pb au système
à long terme,
si on le laisse ouvert pendant des jours, avec ce script qui se
renouvelle en créant un nouveau processus très très fréquemment ?

--
j'agis contre l'assistanat, je travaille dans une SCOP !

3 réponses

Avatar
Matthieu Moy
Thomas writes:

bonjour :-)


j'ai pas envie de devenir un spécialiste en script sh,

et avec mes connaissances actuelles, j'ai simplement eu l'idée de faire
une boucle récursive :


Fais du Haskel, pas du shell, alors ;-).

vvvvvvvv

#!/bin/sh -x -

sleep 10 || exit
`dirname "$0"`/../../vpn/lancement-maintient-vpn || exit
"$0" &

^^^^^^^^


je voulais juste savoir si ça ne risquait pas de poser de pb au système
à long terme,
si on le laisse ouvert pendant des jours, avec ce script qui se
renouvelle en créant un nouveau processus très très fréquemment ?


Avec un sleep 10, oui, tu crée 360 processus par heure, c'est vraiment
bourrin.

Si tu veux limiter les dégats :

exec "$0"

à la place du "$0". Ça _remplace_ le script au lieu d'en lancer un
nouveau.

Mais pourquoi donc vouloir faire de la récursivité ?

while true; do
lancement-machin-bidule
sleep 10
done

--
Matthieu

Avatar
Thomas
In article ,
Matthieu Moy wrote:

Thomas writes:

bonjour :-)


j'ai pas envie de devenir un spécialiste en script sh,

et avec mes connaissances actuelles, j'ai simplement eu l'idée de faire
une boucle récursive :


Fais du Haskel, pas du shell, alors ;-).


:-D


vvvvvvvv

#!/bin/sh -x -

sleep 10 || exit
`dirname "$0"`/../../vpn/lancement-maintient-vpn || exit
"$0" &

^^^^^^^^


je voulais juste savoir si ça ne risquait pas de poser de pb au système
à long terme,
si on le laisse ouvert pendant des jours, avec ce script qui se
renouvelle en créant un nouveau processus très très fréquemment ?


Avec un sleep 10, oui, tu crée 360 processus par heure, c'est vraiment
bourrin.


je viens de penser :
dans tous les cas, le sleep et les processus lancés créent des processus
à chaque tour de boucle aussi ...
pas de pb pour eux ??

la boucle sera peut être de 1 min ou 1h,
mais je veux voir à long terme, par exemple si par hasard j'ai plus
jamais de pb avec mon mac, et que je ne le redémarre plus jamais :-)


Si tu veux limiter les dégats :

exec "$0"

à la place du "$0". Ça _remplace_ le script au lieu d'en lancer un
nouveau.


exec "$0" à la place de "$0" &
sinon ça fait un nouveau processus quand même


Mais pourquoi donc vouloir faire de la récursivité ?


j'avais pas envie de chercher la syntaxe exacte, de me lancer dans
"comment bien programmer en sh", etc ...


while true; do
lancement-machin-bidule
sleep 10
done


merci bcp :-)

--
j'agis contre l'assistanat, je travaille dans une SCOP !


Avatar
Olivier Miakinen
Le 13/09/2007 19:24, Thomas répondait à Matthieu Moy :

[...]

Mais pourquoi donc vouloir faire de la récursivité ?


j'avais pas envie de chercher la syntaxe exacte, de me lancer dans
"comment bien programmer en sh", etc ...


Mouhahahahahahahaha !

<MÀLC>
T : Bonjour, pour calculer A+B je cherche à calculer les exponentielles
de A et B, les multiplier entre elle, et finalement prendre le
logarithme du résultat.
MM : Mais pourquoi donc ne pas calculer directement A+B ?
T : J'avais pas envie de chercher la syntaxe exacte de l'addition.
</MÀLC>