Je suis en train d'écrire un script qui boucle en exécutant des
commandes plus ou moins complexes sur différents serveurs.
Il arrive que certaines commandes "se bloquent" pour des raisons très
diverses.
Je souhaite donc soumettre ces commandes en imposant un time-out afin de
pouvoir continuer à scruter les serveurs suivants si une commande ne
rend pas la main dans les délais.
-- My Debian/apt repo: My Fedora/yum Repo: http://www.locataire-serveur.info/sections/liens/fedora-core-yum
lhabert
kato fong :
Je suis en train d'écrire un script qui boucle en exécutant des commandes plus ou moins complexes sur différents serveurs. Il arrive que certaines commandes "se bloquent" pour des raisons très diverses. Je souhaite donc soumettre ces commandes en imposant un time-out afin de pouvoir continuer à scruter les serveurs suivants si une commande ne rend pas la main dans les délais.
Quelque chose comme ça a l'air de marcher à peu près :
. Éventuellement mettre des kill -9 à la place des kills. Ça a l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un très léger risque de tuer un autre process qui se serait vu réaffecter le même pid, enfin c'est pas très probable (utiliser supervise à la place si on est parano).
kato fong :
Je suis en train d'écrire un script qui boucle en exécutant des
commandes plus ou moins complexes sur différents serveurs.
Il arrive que certaines commandes "se bloquent" pour des raisons très
diverses.
Je souhaite donc soumettre ces commandes en imposant un time-out afin de
pouvoir continuer à scruter les serveurs suivants si une commande ne
rend pas la main dans les délais.
Quelque chose comme ça a l'air de marcher à peu près :
. Éventuellement mettre des kill -9 à la place des kills. Ça a
l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin
du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un
très léger risque de tuer un autre process qui se serait vu réaffecter le
même pid, enfin c'est pas très probable (utiliser supervise à la place si on
est parano).
Je suis en train d'écrire un script qui boucle en exécutant des commandes plus ou moins complexes sur différents serveurs. Il arrive que certaines commandes "se bloquent" pour des raisons très diverses. Je souhaite donc soumettre ces commandes en imposant un time-out afin de pouvoir continuer à scruter les serveurs suivants si une commande ne rend pas la main dans les délais.
Quelque chose comme ça a l'air de marcher à peu près :
. Éventuellement mettre des kill -9 à la place des kills. Ça a l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un très léger risque de tuer un autre process qui se serait vu réaffecter le même pid, enfin c'est pas très probable (utiliser supervise à la place si on est parano).
kato fong
R12y wrote:
Je ferais un script par serveur.
mmm...erci. Toutefois, j'ai besoin de comparer les données collectées
sur chaque serveur afin de réagir rapidement le cas échéant. Si le script pN.sh qui scrute le serveur ServN se plante sans rendre la main, mes données relatives à ServN ne seront pas mises à jour.
Je sais comment m'en sortir, mais ça devient assez lourd. C'est pour ça que j'aurais aimé une commande, style sudo, time ou nohup, qui prend une autre commande en argument en lui imposant un temps max d'exécution.
R12y wrote:
Je ferais un script par serveur.
mmm...erci. Toutefois, j'ai besoin de comparer les données collectées
sur chaque serveur afin de réagir rapidement le cas échéant.
Si le script pN.sh qui scrute le serveur ServN se plante sans rendre la
main, mes données relatives à ServN ne seront pas mises à jour.
Je sais comment m'en sortir, mais ça devient assez lourd. C'est pour ça
que j'aurais aimé une commande, style sudo, time ou nohup, qui prend une
autre commande en argument en lui imposant un temps max d'exécution.
mmm...erci. Toutefois, j'ai besoin de comparer les données collectées
sur chaque serveur afin de réagir rapidement le cas échéant. Si le script pN.sh qui scrute le serveur ServN se plante sans rendre la main, mes données relatives à ServN ne seront pas mises à jour.
Je sais comment m'en sortir, mais ça devient assez lourd. C'est pour ça que j'aurais aimé une commande, style sudo, time ou nohup, qui prend une autre commande en argument en lui imposant un temps max d'exécution.
kato fong
Luc Habert wrote:
Quelque chose comme ça a l'air de marcher à peu près :
. Éventuellement mettre des kill -9 à la place des kills. Ça a l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un très léger risque de tuer un autre process qui se serait vu réaffecter le même pid, enfin c'est pas très probable (utiliser supervise à la place si on est parano).
merci également de m'avoir signalé supervise. ça peut aussi être une piste.
@+
kato
Luc Habert wrote:
Quelque chose comme ça a l'air de marcher à peu près :
. Éventuellement mettre des kill -9 à la place des kills. Ça a
l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin
du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un
très léger risque de tuer un autre process qui se serait vu réaffecter le
même pid, enfin c'est pas très probable (utiliser supervise à la place si on
est parano).
merci également de m'avoir signalé supervise. ça peut aussi être une piste.
. Éventuellement mettre des kill -9 à la place des kills. Ça a l'inconvénient que ça laisse des sleep trainer si sleep n'est pas un builtin du shell, et que si « $KILLER » meurt avant le « kill "$KILLER" », on a un très léger risque de tuer un autre process qui se serait vu réaffecter le même pid, enfin c'est pas très probable (utiliser supervise à la place si on est parano).
merci également de m'avoir signalé supervise. ça peut aussi être une piste.