1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/usr/local/bin/perl
# Ce script vérifie la présence d'un process en mémoire afin de le détruire
# s'il y reste plus d'une minute
use strict;
use Win32::Process;
my ($process,$start,$cpt,$temp,$longueur,$processID,$rep,$parampid,
$paramprocess);
my (@pid,@process,@temp,@parametre,@timer);
$rep ="D:\\appsserv\\admin\\kill avp32";
$paramprocess = "$rep\\param\\process.ini";
$parampid = 'D:\appsserv\admin\kill avp32\pid.txt';
mkdir "$rep\\param",0777 unless -d "$rep\\param";
# Inserre dans la liste @process le contenu du fichier $paramprocess
open (INI, "$paramprocess") or die "Impossible d'ouvrir process.ini en lecture : $!";
@parametre = <INI>;
close INI;
chomp (@parametre);
$start = 0;
while ($start<@parametre)
{
# compte en partant de la gauche le nombre de carractére contenu dans
# @process avant de rencontrer la chaine " "
$temp=index (@parametre[$start]," ",0);
# récupére la longueur complète de la chaine @servers[0] pour l'affecter à
# $longueur
$longueur = length (@parametre[$start]);
# substr permet de récupérer dans la chaine @servers[0] les x éléments définit
# par $temp en commençant au rang 0 de la chaine.
$processID = substr(@parametre[$start],0,$temp);
@process = (@process,$processID);
$processID = substr(@parametre[$start],$temp+1);
@timer = (@timer,$processID);
$start++;
}
# Pour chaque process de la liste on récupére une liste d'ID
foreach $processID (@process)
{
$temp = '"D:\appsserv\admin\kill avp32\tlist.exe"|find /I "' . $processID . '" > "' . $parampid . '"';
system(1,$temp) or die "error";
open(INFILE, "$parampid") or die "Impossible d'ouvrir pid.txt en lecture : $!";
@parametre = <INFILE>;
close (INFILE);
chomp (@parametre);
@pid = (@pid, @parametre);
} |
Partager