Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1211 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  lancer 2 commandes simultanement en perl

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lancer 2 commandes simultanement en perl

n°778423
ladym
Posté le 25-06-2004 à 17:49:06  profilanswer
 

bonjour,
j'ai deux commandes que j'aimerais lancer simultanement dans un script mais je ne sais pas comment le faire.si ce n'est simultanement alors l'une après l'autre, mais il faudrait que la première contine à tourner.
je sais que pour lancer des cmd c'est ainsi:
@cmdvlc=`vlc -vvv udp://"@"$votre_adressemulticast`;  
@cmdeth=`ethereal -k`;
je suis obligé d'arreter la première pour ke la 2eme s'execute.
bon merci pour votre aide.

mood
Publicité
Posté le 25-06-2004 à 17:49:06  profilanswer
 

n°778438
pospos
Posté le 25-06-2004 à 18:21:46  profilanswer
 

tu peut soit forker, soit utiliser une petite subtilité de system (non documenté) :
 
system(1, $cmd);
 
qui lance ta commande et retourne immediatement (mais bon tu peux pas recuperer le resultat...)
 
en fait je ne suit meme pas certainq ue ca marche avec autre chose qu'activePerl


Message édité par pospos le 25-06-2004 à 18:22:07
n°778799
burgergold
5$? va chez l'diable!
Posté le 26-06-2004 à 00:04:24  profilanswer
 

pospos a écrit :

tu peut soit forker, soit utiliser une petite subtilité de system (non documenté) :
 
system(1, $cmd);
 
qui lance ta commande et retourne immediatement (mais bon tu peux pas recuperer le resultat...)
 
en fait je ne suit meme pas certainq ue ca marche avec autre chose qu'activePerl


 
jcrois que ca fonctionne ta 2e méthode
 
yaura bien un petit délai entre les 2 commandes, mais minime


---------------
http://www.boincstats.com/signature/user_664861.gif
n°780246
ladym
Posté le 28-06-2004 à 11:32:07  profilanswer
 

comment dois je faire pour forker??
je ne sais pas comment faire...

n°780263
burgergold
5$? va chez l'diable!
Posté le 28-06-2004 à 11:38:20  profilanswer
 
n°780282
ladym
Posté le 28-06-2004 à 11:48:49  profilanswer
 

merci, je m'y connais pas des masses en perl, il n'y aurait pas qlq de plus simple ou plus comprehensible?

n°780312
burgergold
5$? va chez l'diable!
Posté le 28-06-2004 à 12:02:22  profilanswer
 
n°780320
ladym
Posté le 28-06-2004 à 12:09:27  profilanswer
 

merci!!!

n°780346
ladym
Posté le 28-06-2004 à 12:35:02  profilanswer
 

j'ai testé avec le fork mais pour que le deuxième programme puisse se lancer je suis obligé d'arreter le premier. les deux ne s'execute pas en même temps...

n°780652
pospos
Posté le 28-06-2004 à 16:00:56  profilanswer
 

install Proc::Simple, c'est une interface simple pour le forck
 
au fait, tu es sous windows ou unix?

mood
Publicité
Posté le 28-06-2004 à 16:00:56  profilanswer
 

n°780803
ladym
Posté le 28-06-2004 à 17:37:17  profilanswer
 

sous windows

n°780832
ladym
Posté le 28-06-2004 à 17:55:03  profilanswer
 

j'ai installé le paquet Proc::simple,
et j'ai l'impression que ça ne change rien voila ce queje fais dans le script:
 
#!c:/perl/bin/perl -w
 
print ("Rentrez votre adresse multicast:" );
 
@adrIn = ("233.60.197.5", "233.60.197.6", "233.60.197.48" );
 
 
$votre_adressemulticast = <STDIN>;  
print ("l'adresse multicast est: $votre_adressemulticast\n" );
   
 
 
 
$SIG{CHLD} = sub { wait };
 
 
unless ($pid = fork) {
 
 
        unless (fork) {
 
     exec `vlc -vvv udp://"@"$votre_adressemulticast)`;
     print ("vlc est lance" );
     
     #die "no exec";
  ##or  
     
           #exec `vlc -vvv udp://"@"$votre_adressemulticast)`;
            exec `ethereal -k`;
             
 
             
            exit 0;
        }
 
        exit 0;
 
    }
     
    waitpid($pid,0);
 
 
 
 
 
 
 
 
 
 

n°781018
pospos
Posté le 29-06-2004 à 00:28:56  profilanswer
 

pourkoi tu fais deux fork à la suite?
 
fait ca avec Proc::Simple!
regarde le synopsis:
http://search.cpan.org/~mschilli/P [...] /Simple.pm

n°781262
ladym
Posté le 29-06-2004 à 11:28:26  profilanswer
 

en faite je me suis dit que :
- si je fais un fork  
- et que dans le processus pere j'execute ethereal
- sinon je suis dans le fils et je fais un sleep et j'execute vlc
mais dans ce cas là comme je mets en pause ethereal je nepeux dc pas récupérer ce que lance mon deuxième programme avec ethereal? est ce que j'ai bien compris? j'ai regardé Proc::simple mais je n'ai pas compris grand chose, dc je ne préfère pas m'aventurer...merci
 
#!c:/perl/bin/perl -w
 
print ("Rentrez votre adresse multicast:" );
 
@adrIn = ("233.60.x.x", "233.60.x.x", "233.60.x.x" );
print ("choisissez une adresse multicast parmis les suivantes: '@adrIn\n' " );
 
$votre_adressemulticast = <STDIN>;  
print ("l'adresse multicast est: $votre_adressemulticast\n" );
 
 
if ($pid = fork) {
 system `ethereal -k &`;
 #system `vlc -vvv udp://"@"$votre_adressemulticast & `;
 
 
 
 }
else {
 #wait (5);
 sleep (5);
 system `vlc -vvv udp://"@"$votre_adressemulticast`;
 #system `ethereal -k `;
 
 
 }

n°781416
pospos
Posté le 29-06-2004 à 13:43:38  profilanswer
 

pour le fork fait des test sans lancer de commande (en affichant le PID par exemple) pour voir ou ca deconne (j'ai pas envi de relir ton truc la...)
 
mais visiblement la tu ne recupere pas la sortie de tes commandes
 
attend mais la je comprend pas ce que tu fais: tu melange system et `` ??
la tu va executer ce que te retourne le prog entre `` !!
 
 
bon, si tu n'utilise pas la sortie de tes execution pourkoi tu ne ferais pas simplement
 
system(1, "vlc -vvv udp......" );
system("ethernet -k....." );  
 
?


Message édité par pospos le 29-06-2004 à 13:44:15
n°782096
ladym
Posté le 30-06-2004 à 10:19:34  profilanswer
 

merci pour ton indication ça ouvre mes programmes l'un après l'autre mais ethereal ne lit rien.je vais essayer de voir pourquoi

n°782125
ladym
Posté le 30-06-2004 à 10:33:24  profilanswer
 

c'est bon ça marche BIEN!!!!!MERCI BCP de ton aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  lancer 2 commandes simultanement en perl

 

Sujets relatifs
[Webpshere] Websphere ne veux plus se lancer[Access/VBA] Lancer du code au démarrage puis fermer la base.
[Scripts Shell] Commandes find & echo - probleme d'affichagePrécharger une anim flash et lancer direct un lien après son execution
Serveur Web PerlExecuter commandes externes via exec avec un apache chrooté
[Perl] Parser XML[Perl] internal serveur error à la !&f=@
[ASP.Net] Lancer une application se trouvant sur le client 
Plus de sujets relatifs à : lancer 2 commandes simultanement en perl


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR