Page 1 sur 1

Fermeture de PID (Plink)

Posté : dim. 08 sept. 2019 08:49
par raphael92130
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.

Re: Fermeture de PID (Plink)

Posté : lun. 09 sept. 2019 00:57
par Tlem
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.

Re: Fermeture de PID (Plink)

Posté : lun. 09 sept. 2019 07:32
par raphael92130
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