salut a vous tous.
je cherche a lancer plusieurs processus en meme temps, est ce qu il possible a l'aide du php ? :lol:
Version imprimable
salut a vous tous.
je cherche a lancer plusieurs processus en meme temps, est ce qu il possible a l'aide du php ? :lol:
si t sous linux oui c'est possible mais c'est assez compliqué (fork), tu fais un truc du genre :
sous windows je ne sais pas.Code:exec("php monappli.php &");
Attention ce n'est pas un processus léger (thread) ! monappli.php est indépendante de ton appli principale !
oui j'ai deja utiliser fork() mais linux avec langage c.
mais je ne sais pas vraiment comment l'utilise sous php :?:
Quel est l'intéret, le besoin ?Citation:
Envoyé par naourass
bon ce que je veux si de test la connexion avec des machines dans un reseau local (avec un ping + ip) pour savoir les machine connecte sur les reseau.
pour cela j'ai pense a lance des processus chaqu'une va realiser un ping sur un pc pour avoir un bon temps d'execution je ne sais pas si il est possible avec php
:cry:
Et bien essaie comme l'a suggéré FFF :
(avec peut-etre redirection d'erreur vers la sortie standard...)Code:exec("php ping.php ".$ip." &")
:roll:
Mais je ne vois pas l'intéret de faire des processus pour ça :roll: Pour moi une simple boucle sur toute les ip aurait suffit...
oui j'ai test avec un boucle ca marche tres bien mais le temps d'execution
et grand.
ok je vais test ton idee mais pourquoi l'utilisation d'un " & "?
Le "&" sous Unix permet de ne pas attendre la fin de ton programme pour te redonner la main..Citation:
Envoyé par naourass
Je n'utiliserais pas les processus pour cela. Tu as bcp d'autres solutions :
- executer un script php (genre fopen("http://monserveur/page.php?args=....","r")) en tâche planifiée toutes les x secondes sur chacune des machines (pas top)
- Si tu connais les ip de tes machines à tester, tu peux faire un script php lancé depuis une seule machine dont la structure serait :
Comme cela l'execution de pageping.php ne dure que quelque secondes, mais se fait n fois de suite.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <? $montableauip=...; //tableau de toutes les ip à tester (requète mysql ou autre) $n=$_GET["n"]; if($n!=limite) { exec("ping "+$montableauip[n],$resultat); // tu analyses $resultat if (ping est bon) {//code1} else {//code2} //tu rediriges sur cette même page en changeant n header("Location : http://monserveur/pageping.php?n="+($n++)); } else { header("Location : http://monserveur/pingfin.php"); } ?>
C'est une idée de code...
-Sinon sur php.net un gars a écrit un pti code permettant d'exécuter des scripts php en arrière plan grâce à pfsockopen(), à voir... apparamment si j'ai bien compris tu pourrais lancer plusieurs fois un script php depuis une page php :
http://fr.php.net/manual/fr/function.pfsockopen.php
peut être que finalement un script shell suffirait ?