Fermeture de PID (Plink)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
raphael92130
Niveau 1
Niveau 1
Messages : 3
Enregistré le : sam. 07 sept. 2019 09:10
Status : Hors ligne

Fermeture de PID (Plink)

#1

Message par raphael92130 » dim. 08 sept. 2019 07:49

bonjour

je dispose d'un serveur sur lequel tourne une application dont je souhaite vérifier le bon fonctionnement à l'aide d'une interface réalisée avec AutoIt.

pour cela j'utilise Plink.exe localisé dans putty.

j'arrive à me connecter et récupérer des informations utiles.

je suis confronté au problème suivant :

je vérifie le bon fonctionnement de cette application en vérifiant un fichier LOG (tail -f /exploit/appli/monchemin.log) qui contient au fil de l'eau toutes l'activité)

avec AutoIt j'arrive à lire le contenu de ce fichier log en interrompant moi même le service ( Fermeture manuelle de la fenêtre DOS lorsque je suis dans le mode : @SW_SHOW ( commande Run).

je cherche donc à fermer automatiquement le PID pour récupérer le stdout. l'objectif sera de réaliser cette action de façon récursive pour s'assurer que les sorties évoluent ( preuve que l'appli n'est pas freeze).
#Include <GuiButton.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <AutoItConstants.au3>

$PlinkDir = "c:\putty"
$serveur = "10.10.10.10"
$login  = "login"
$Password = "password "

$iPID = Run(@ComSpec & " /c " & $PlinkDir & "\plink.exe " & $login & "@" & $serveur  & " " & "-pw "& $Password & " tail -f /exploit/log/fichier.log ", "", @SW_SHOW,$STDERR_CHILD + $STDOUT_CHILD + $STDIN_CHILD)

$sOutput = ""
ProcessWaitClose($iPID)  
;@@@@@@@@@@

;j'ai essayé de remplacer la commande précédente par :
;Sleep (1000)         spécification d'un temps d'attente avant de clore le PID
;ProcessClose($iPID)  

;@@@@@@@@@@


$sOutput = StdoutRead($iPID)
MsgBox(0, "", "$Sortie = " & $sOutput)
 


Mon objectif final sera de récupérer à chaque occurence chacune des dernières lignes du fichier LOG et de la comparer à celle sauvegardée pour l'occurence précédente.


je vous remercie par avance et vous souhaite un agréable week-end.

Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11442
Enregistré le : ven. 20 juil. 2007 20:00
Localisation : Bordeaux
Status : Hors ligne

Re: Fermeture de PID (Plink)

#2

Message par Tlem » dim. 08 sept. 2019 23:57

Bonsoir raphael92130.

Vous pouvez aussi récupérer le flux par une boucle comme dans l'exemple de StdoutRead().

Après, pour fermer le processus, vous devez d’abord fermer le flux StdioClose(). Si vous lisez l'aide de la commande Run(), tout y est expliqué (cliquez sur les mots clé de ce message pour lire l'aide en Français). L'exemple de StdioClose() me semble pas mal pour faire ce que vous cherchez à faire.

Bonne journée.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

raphael92130
Niveau 1
Niveau 1
Messages : 3
Enregistré le : sam. 07 sept. 2019 09:10
Status : Hors ligne

Re: Fermeture de PID (Plink)

#3

Message par raphael92130 » lun. 09 sept. 2019 06:32

Merci pour votre réponse

je vais lire avec attention l'explication de la commande STioclose afin de l'adapter à mes besoins.

Agréable journée.
je clôturerai le sujet dès que j'aurai validé la solution.

Cordialement

Répondre