Controle de tache en cours en PHP ? possible ?

Petit nouveau ! | 4 Messages

13 mai 2007, 19:53

Bonjour
j'ai fait une petite page en html avec 2 boutons.
bouton 1 : start qui lance un php qui lance un batch qui execute un programme toto.exe sur mon serveur puis retour sur ma page

bouton 2 : stop qui lance un autre php qui lance un batch qui stop mon programme toto.exe sur mon serveur puis retour sur ma page

Je voudrais pouvoir afficher si mon programme toto est dans les processus de mon serv. Comment faire ca ? (genre quand la page s'affiche un petit script en php viens regarder si toto est dans les processus du serveur ?)

merci d'avance

Eléphant du PHP | 445 Messages

13 mai 2007, 20:02

Bonsoir,

En lisant les processus en cours, puis en regardant si celui qui t'intéresse est dans cette liste ?

Un truc de ce genre là peut-être :
shell_exec('ps');
Ca peut être une piste
LLDC
Ulti

Petit nouveau ! | 4 Messages

13 mai 2007, 21:04

oui ca serait mon souhait
vérifier si le processus toto est déja lancé.

tu es sur qu'avec

shell_exec('toto.exe');
ca marcherait ?

Eléphant du PHP | 445 Messages

14 mai 2007, 07:33

Non, pas shell_exec('toto.exe');

shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne.

La commande ps t'indique tous les processus actifs.

Donc shell_exec('ps'); te retournera une chaine contenant tous les processus actifs sur ton serveur, tu n'auras plus qu'à tester la présence de toto.exe dans cette chaine.
LLDC
Ulti

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2007, 20:06

heu par exemple ca ?

<?php
$output = shell_exec('ps');
echo "<pre>$output</pre>";
?>


ca ne m'affiche rien ?

Eléphant du PHP | 445 Messages

14 mai 2007, 20:23

C'est une question ?
LLDC
Ulti

Petit nouveau ! | 4 Messages

14 mai 2007, 20:31

heu oui :wink:

je voudrais faire un test
ca ne m'affiche rien ???

Eléphant du PHP | 445 Messages

14 mai 2007, 20:52

Bah pour le savoir fais le test, c'est censé t'afficher la liste des proc' actifs
LLDC
Ulti

Petit nouveau ! | 4 Messages

14 mai 2007, 21:03

oui
mais ca me fait rien ;- :(

Eléphant du PHP | 147 Messages

14 mai 2007, 23:23

La fonction exec est peu etre désactivé comme chez certain hebergeur.

Eléphant du PHP | 445 Messages

14 mai 2007, 23:33

Possible oui, je sais pas si ca marche, mais tu peux peut-être tester ca :
if(function_exists('shell_exec')) ? 'La fonction shell_exec() est disponible' : 'La fonction shell_exec() n\'est pas disponible';
LLDC
Ulti

Invité
Invité n'ayant pas de compte PHPfrance

14 mai 2007, 23:50

pour l'hébergeur c'est moi (je me fait un petit serveur LAN)

j'ai essayé :
if(function_exists('shell_exec')) ? 'La fonction shell_exec() est disponible' : 'La fonction shell_exec() n\'est pas disponible';

:roll: rien de mieux... :roll:

Mammouth du PHP | 693 Messages

15 mai 2007, 08:00

Il faut ajouter des print() pour els deux chaines.

ViPHP
ViPHP | 5924 Messages

15 mai 2007, 09:21

Sinon, si tu veux gérer ca proprement, tu peux enregistrer ton programme en tant que service, et ensuite installer l'extension win32_service pour le gérer...

Eléphant du PHP | 445 Messages

15 mai 2007, 10:06

Oups oui, j'ai oublié le echo...
echo (function_exists('shell_exec')) ? 'La fonction shell_exec() est disponible' : 'La fonction shell_exec() n\'est pas disponible';
Désolé, j'étais occupé à côté ^^'
LLDC
Ulti