Bonjour,

Toujours aussi bleu en perl j'essaie de traduire un script en shell qui me permet de redémarrer le démon des qu'un port TCP bien défini est libéré.

En shell cela donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
# ærret du démon 
svcadm disable svc:/application/MGCS:default
# Verification de la purge des PORT TCP 
while [  -n "`netstat -an | grep 29041 | grep -v CLOSE_WAIT `" ] 
        do echo -n "."
        sleep 10
        wait
done 
 
echo 
echo
echo " Redemarrage du demon" 
echo
svcadm enable svc:/application//MGCS:default
En fait ma difficulté est dans la boucle while que j'ai traduis comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl
use warnings;
use strict;
use Sys::Hostname;
use Socket;
 
my $netstat=`netstat -an | grep 29041 | grep -v CLOSE_WAIT`;
while ( $netstat = <> ) {
        print ".";
        sleep(10);
        $netstat=`netstat -an | grep 29041 | grep -v CLOSE_WAIT`;
        }
Je pense que suis passé à côté de quelque chose car la boucle ne se fait pas et le script reste bloqué....

Merci de votre aide.