Question
[Resolu]surveiller un exe si il crash
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 11 ans 1 mois #19423
par Gabriel
[Resolu]surveiller un exe si il crash a été créé par Gabriel
bonjour a tous
j'ai un qui surveille les entrées oracle dans un fichier tnsname.ora (fichier de definition des connection a une bdd oracle)
pour cela j'utilise tnsping.exe, utilitaire fournit par oracle, qui permet de proceder a un test d'une entree.
Exemple tnsping.exe baseOracletoto1
si le fichier tnsnames.ora configuré sur le pc a l'entrée il essaie de le resoudre. si l'entree ne si' trouve pas il signale un \"not resolvable\".
mon probleme c'est que le tnsping.exe de temps en temps crash totalement (avec le popup dans Windows \"tnsping.exe s'est arrété pour une raison inconnue\")
dans mon script je l'appelle avec (script version simplifié
):
[code:1]
$tnsping = \"c:\program files\oracle\bin\tnsping.exe\"
$listeEntrees = get-content bases.txt
foreach ($entree in $listeEntrees){
$resultat = & $tnsping $entree
if ($resultat -match \"not resolvable\"«»){
$entree + \" OK\" | add-content .\résultats.log
} else {
$entree + \" NOK\" | add-content .\résultats.log
}
}
[/code:1]
Bon je pourrais tester le fait que resultat est simplement vide (si tnsping.exe crashe la sortie en cmd est vide), mais:
1/ ca veut dire que je doit traiter l'ensemble des résultats différents
2/ tant que personne n'a pas cliquer sur le OK du bouton de la popup crash, la boucle reste bloqué...
donc je me disais si il existait une petite commande qui lance l'appli et qu'on surveille ce serait cool.
le try and catch ne fonctionne pas (le process eclate avant de renvoer quoique ce soit...)
une idée ?
<br><br>Message édité par: tonic8, à: 8/04/15 16:02
j'ai un qui surveille les entrées oracle dans un fichier tnsname.ora (fichier de definition des connection a une bdd oracle)
pour cela j'utilise tnsping.exe, utilitaire fournit par oracle, qui permet de proceder a un test d'une entree.
Exemple tnsping.exe baseOracletoto1
si le fichier tnsnames.ora configuré sur le pc a l'entrée il essaie de le resoudre. si l'entree ne si' trouve pas il signale un \"not resolvable\".
mon probleme c'est que le tnsping.exe de temps en temps crash totalement (avec le popup dans Windows \"tnsping.exe s'est arrété pour une raison inconnue\")
dans mon script je l'appelle avec (script version simplifié
[code:1]
$tnsping = \"c:\program files\oracle\bin\tnsping.exe\"
$listeEntrees = get-content bases.txt
foreach ($entree in $listeEntrees){
$resultat = & $tnsping $entree
if ($resultat -match \"not resolvable\"«»){
$entree + \" OK\" | add-content .\résultats.log
} else {
$entree + \" NOK\" | add-content .\résultats.log
}
}
[/code:1]
Bon je pourrais tester le fait que resultat est simplement vide (si tnsping.exe crashe la sortie en cmd est vide), mais:
1/ ca veut dire que je doit traiter l'ensemble des résultats différents
2/ tant que personne n'a pas cliquer sur le OK du bouton de la popup crash, la boucle reste bloqué...
donc je me disais si il existait une petite commande qui lance l'appli et qu'on surveille ce serait cool.
le try and catch ne fonctionne pas (le process eclate avant de renvoer quoique ce soit...)
une idée ?
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 11 ans 1 mois #19424
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:surveiller un exe si il crash
Salut,
tonic8 écrit:
Sous quel OS et version de PS ?
tonic8 écrit:
tonic8 écrit:
Un quoi ?j'ai un qui surveille
Sous quel OS et version de PS ?
tonic8 écrit:
Connais-tu le nom du process gérant cette fenêtre ?tant que personne n'a pas cliquer sur le OK du bouton de la popup crash, la boucle reste bloqué
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 11 ans 1 mois #19429
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:surveiller un exe si il crash
Salut Tonic8 ça faisait un bail ! 
Pas évident ton souci... Moi instinctivement j'essaierai de créer un job (invoke-command -asjob ou avec start-job) pour chaque appel de la commande et peut-être que l'état du job te permettra de savoir si ton utilitaire a bien fonctionné ou pas.
Sinon as tu essayé de tester le code de retour de la variable automatique $LASTEXITCODE après son exécution ? Si tout s'est bien passé le code de retour DOIT être la valeur zéro.
Arnaud
Pas évident ton souci... Moi instinctivement j'essaierai de créer un job (invoke-command -asjob ou avec start-job) pour chaque appel de la commande et peut-être que l'état du job te permettra de savoir si ton utilitaire a bien fonctionné ou pas.
Sinon as tu essayé de tester le code de retour de la variable automatique $LASTEXITCODE après son exécution ? Si tout s'est bien passé le code de retour DOIT être la valeur zéro.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 11 ans 1 mois #19434
par Gabriel
Réponse de Gabriel sur le sujet Re:surveiller un exe si il crash
taper trop rapidement mon message:blush:
je disais j'ai un script qui surveille les entrées oracle dans le fichier tnsnames.ora global.
desolé Laurent
je disais j'ai un script qui surveille les entrées oracle dans le fichier tnsnames.ora global.
desolé Laurent
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 11 ans 1 mois #19435
par Gabriel
Réponse de Gabriel sur le sujet Re:surveiller un exe si il crash
bonjour Arnaud
en fait je penses qu'il faut que je decoupe mon pb en 2:
gerer le resultat du crash
gerer le crash lui-meme
1/ gerer le resultat du crash
le tnsping.exe est un binaire qui sort un resultat dans la console. De ce resultat en fonction du texte qu'il sort j'evalue si c'est bon ou pas bon.
* \"not resolvable\" = pas bon
* si autre chose = bon
le $lastexit, lui donne ça:
* \"not resolvable\" = 1
* non joignable = 1
* joignable = 0
Grosso modo le tnsping test l'entree dans le fichier global et en plus il test la connectivité.
Ce qui m'interesse c'est la coté resolvable. Il s'agit de surveiller les agissement de ces mechants DBA qui créé des bdd, mais qui ne demandent pas (pour de bonnes ou mauvaises raisons) que les entrees soient mise a jour dans le fichier global.
Par contre ils exportent une liste des entrees en un seul endroit (plusieurs équipes DBA qui font ce qu'ils veulent chacun de leur coté).
donc quand une bdd n'est pas resolvable je les previens, les rappelle a l'ordre...
le pb de connectivité est different, certaines bdd sont en dmz non joignable pour moi.
Donc si le tnsping crash, le $lastexit devrait etre au mieux à 1 au pire vide...
* comment m'assurer que la valeur du lastexit correspond bien a la sortie de mon tnsping et pas d'une autre commande precedente?
2/ surveiller la fenetre popup et la killer car le script attend quelle soit fermer pour passer al a boucle suivante
si je fais un start-job je peux lui mettre un timing? chaque tnsping prend entre 8-20s, si je dis au bout de 60s arrete la tache (donc kill du process et des enfants lancé dans le startjob) en retournant une erreur, je peux traiter.
evidement c'est aleatoire
, la meme entrée peut passer sans pb pendant 17 tentative et pouf casser ensuite
en fait je penses qu'il faut que je decoupe mon pb en 2:
gerer le resultat du crash
gerer le crash lui-meme
le tnsping.exe est un binaire qui sort un resultat dans la console. De ce resultat en fonction du texte qu'il sort j'evalue si c'est bon ou pas bon.
* \"not resolvable\" = pas bon
* si autre chose = bon
le $lastexit, lui donne ça:
* \"not resolvable\" = 1
* non joignable = 1
* joignable = 0
Grosso modo le tnsping test l'entree dans le fichier global et en plus il test la connectivité.
Ce qui m'interesse c'est la coté resolvable. Il s'agit de surveiller les agissement de ces mechants DBA qui créé des bdd, mais qui ne demandent pas (pour de bonnes ou mauvaises raisons) que les entrees soient mise a jour dans le fichier global.
Par contre ils exportent une liste des entrees en un seul endroit (plusieurs équipes DBA qui font ce qu'ils veulent chacun de leur coté).
donc quand une bdd n'est pas resolvable je les previens, les rappelle a l'ordre...
le pb de connectivité est different, certaines bdd sont en dmz non joignable pour moi.
Donc si le tnsping crash, le $lastexit devrait etre au mieux à 1 au pire vide...
* comment m'assurer que la valeur du lastexit correspond bien a la sortie de mon tnsping et pas d'une autre commande precedente?
2/ surveiller la fenetre popup et la killer car le script attend quelle soit fermer pour passer al a boucle suivante
si je fais un start-job je peux lui mettre un timing? chaque tnsping prend entre 8-20s, si je dis au bout de 60s arrete la tache (donc kill du process et des enfants lancé dans le startjob) en retournant une erreur, je peux traiter.
evidement c'est aleatoire
Connexion ou Créer un compte pour participer à la conversation.
- Gabriel
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 248
- Remerciements reçus 1
il y a 11 ans 1 mois #19436
par Gabriel
Réponse de Gabriel sur le sujet Re:surveiller un exe si il crash
Bonjour Arnaud,
yep long time, j'ai pas eu beaucoup de temps.
dis, peut etre que je trouverais la reponses dans le livre que j'ai commandé \"Windows PowerShell - Fonctionnalités avancées\", tu sais si les auteurs en parles
?
yep long time, j'ai pas eu beaucoup de temps.
dis, peut etre que je trouverais la reponses dans le livre que j'ai commandé \"Windows PowerShell - Fonctionnalités avancées\", tu sais si les auteurs en parles
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.046 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Resolu]surveiller un exe si il crash