ulimit -St

Le
Thomas
bonjour :-)


je croyais m'être garanti contre les plantages en boucle infinie avec ce
code là :

while true; do
(
ulimit -St 100
chemin/SSHKeychain || exit "$?"
)
sleep 60 || exit "$?"
done

mais aujourd'hui, je me retrouve avec un processus planté, et le script
qui tourne en boucle en disant "SSHKeychain already running"

il doit bien y avoir un processus qui s'est terminé, pour que le script
se mette à tourner,
mais ce n'est ni le père (je continuais de m'en servir), ni le processus
planté


je m'attendais à ce que "ulimit -St" fasse que le processus planté se
termine, et aucun autre

qqn a une idée du pb et/ou d'une solution ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
xtof.pernod
Le #22193301
Le 31/05/2010 02:47, Thomas a fait rien qu'à écrire :
bonjour :-)




Salut,


je croyais m'être garanti contre les plantages en boucle infinie avec ce
code là :

while true; do
(
ulimit -St 100
chemin/SSHKeychain || exit "$?"
)
sleep 60 || exit "$?"
done

mais aujourd'hui, je me retrouve avec un processus planté, et le script
qui tourne en boucle en disant "SSHKeychain already running"
> (...)
> qqn a une idée du pb et/ou d'une solution ?




Une idée: les parenthèses sont de trop; ou alors il faut tester le
code de sortie du sub-shell:

while :; do (ulimit ..; /chemin/commande || exit $?) || exit $?; done


Mais essaye sans '()', dont la raison d'être me saute pas aux zieux...

--
christophe.
Thomas
Le #22193731
In article "xtof.pernod"
Le 31/05/2010 02:47, Thomas a fait rien qu'à écrire :
> bonjour :-)
>

Salut,

>
> je croyais m'être garanti contre les plantages en boucle infinie avec ce
> code là :
>
> while true; do
> (
> ulimit -St 100
> chemin/SSHKeychain || exit "$?"
> )
> sleep 60 || exit "$?"
> done
>
> mais aujourd'hui, je me retrouve avec un processus planté, et le script
> qui tourne en boucle en disant "SSHKeychain already running"
> > (...)
> > qqn a une idée du pb et/ou d'une solution ?
>

Une idée: les parenthèses sont de trop; ou alors il faut tester le
code de sortie du sub-shell:

while :; do (ulimit ..; /chemin/commande || exit $?) || exit $?; done



ah oui tiens, ça m'a échappé ...

mais tu crois que c'est ulimit qui fait une erreur ?
dans ce cas là ça n'aurais pas exécuté SSHKeychain, si ??



Mais essaye sans '()', dont la raison d'être me saute pas aux zieux...



c'est pour que le ulimit ne soit appliqué que à SSHKeychain, et pas au
script courant (qui fait une boucle)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
xtof.pernod
Le #22194201
Le 31/05/2010 14:54, Thomas a fait rien qu'à écrire :
In article "xtof.pernod"
Le 31/05/2010 02:47, Thomas a fait rien qu'à écrire :
je croyais m'être garanti contre les plantages en boucle infinie avec ce
code là :

while true; do
(
ulimit -St 100
chemin/SSHKeychain || exit "$?"
)
sleep 60 || exit "$?"
done

mais aujourd'hui, je me retrouve avec un processus planté, et le script
qui tourne en boucle en disant "SSHKeychain already running"
(...)
qqn a une idée du pb et/ou d'une solution ?






Une idée: les parenthèses sont de trop; ou alors il faut tester le
code de sortie du sub-shell:

while :; do (ulimit ..; /chemin/commande || exit $?) || exit $?; done



ah oui tiens, ça m'a échappé ...

mais tu crois que c'est ulimit qui fait une erreur ?



Aucune idée !..

dans ce cas là ça n'aurais pas exécuté SSHKeychain, si ??



Ah bah si.. ça continue en séquence.
Pour t'en assurer: ulimit xxx || { echo pb avec ulimit; exit 1 }


Mais essaye sans '()', dont la raison d'être me saute pas aux zieux...



c'est pour que le ulimit ne soit appliqué que à SSHKeychain, et pas au
script courant (qui fait une boucle)




Yep. Mais un sleep et un fork, meme dans une boucle, d'ici que ca te
pompe 100 sec-cpu..

Par contre, si tu mets une limite à SSHKeychain (il a peut-être
besoin de faire des calculs, non ?), faut pas s'étonner si il
sort sauvagement !?

--
christophe.
Thomas
Le #22207391
In article "xtof.pernod"
Le 31/05/2010 14:54, Thomas a fait rien qu'à écrire :
> In article > "xtof.pernod" >> Le 31/05/2010 02:47, Thomas a fait rien qu'à écrire :
>>> je croyais m'être garanti contre les plantages en boucle infinie avec ce
>>> code là :
>>>
>>> while true; do
>>> (
>>> ulimit -St 100
>>> chemin/SSHKeychain || exit "$?"
>>> )
>>> sleep 60 || exit "$?"
>>> done
>>>
>>> mais aujourd'hui, je me retrouve avec un processus planté, et le script
>>> qui tourne en boucle en disant "SSHKeychain already running"
>>>> (...)
>>>> qqn a une idée du pb et/ou d'une solution ?
>>>
>>
>> Une idée: les parenthèses sont de trop; ou alors il faut tester le
>> code de sortie du sub-shell:
>>
>> while :; do (ulimit ..; /chemin/commande || exit $?) || exit $?; done
>
> ah oui tiens, ça m'a échappé ...
>
> mais tu crois que c'est ulimit qui fait une erreur ?

Aucune idée !..

> dans ce cas là ça n'aurais pas exécuté SSHKeychain, si ??

Ah bah si.. ça continue en séquence.
Pour t'en assurer: ulimit xxx || { echo pb avec ulimit; exit 1 }



j'ai rajouté ce test et relancé,
en tout cas il ne fait pas d'erreur habituellement



>> Mais essaye sans '()', dont la raison d'être me saute pas aux zieux...
>
> c'est pour que le ulimit ne soit appliqué que à SSHKeychain, et pas au
> script courant (qui fait une boucle)
>

Yep. Mais un sleep et un fork, meme dans une boucle, d'ici que ca te
pompe 100 sec-cpu..



ok
mais à l'inverse, je ne vois pas comment ce sous shell peut être la
cause de mes ennuis ...


Par contre, si tu mets une limite à SSHKeychain (il a peut-être
besoin de faire des calculs, non ?), faut pas s'étonner si il
sort sauvagement !?



je ne m'étonne pas qu'il sorte sauvagement,
au contraire, je vois qu'un de ses processus fils a buggé avec une
boucle infinie, et que lui, justement, n'a pas terminé au bout des 100 s
...

pourtant c'est une propriété qui est héritée, non ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Thomas
Le #22246751
In article
Thomas
bonjour :-)


je croyais m'être garanti contre les plantages en boucle infinie avec ce
code là :

while true; do
(
ulimit -St 100
chemin/SSHKeychain || exit "$?"
)
sleep 60 || exit "$?"
done

mais aujourd'hui, je me retrouve avec un processus planté, et le script
qui tourne en boucle en disant "SSHKeychain already running"

il doit bien y avoir un processus qui s'est terminé, pour que le script
se mette à tourner,
mais ce n'est ni le père (je continuais de m'en servir), ni le processus
planté


je m'attendais à ce que "ulimit -St" fasse que le processus planté se
termine, et aucun autre

qqn a une idée du pb et/ou d'une solution ?




bon, ça devait être un bug très particulier avec le shell,

parce que aujourd'hui, nouveau plantage en boucle infinie,
le processus planté s'est bien terminé au bout de 100 s, et le script
n'a pas fait un tour de boucle :-)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Publicité
Poster une réponse
Anonyme