J'ai un script php ServerTest.php (ex : php ServerTest.php 127.0.0.1 5354)

qui appel un fichier S3DServer_script ou il y a des commandes stop et start qui permettent d'arreter et de relancer le serveur.

Le problème est que j'arrive a relancer le serveur. mais que je ne peux pas lancer php ServerTest.php 127.0.0.1 5354 plusieurs fois de suite.
ex 1er fois : reponse
 Redemarrage du serveur

puis 2eme fois (donc là le serveur est relancé)
Il n'y a plus aucune action juste écrit ça : 
alors que normalement je peux utiliser ce fichier meme s'il est lancé.


ServerTest.php :

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
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
55
56
57
58
<?php
include_once("S3DAdmin.php");
 
if ($_SERVER["argc"]>2)
{    
    $ServerAddress = $_SERVER["argv"][1] ;
    $ServerPort    = $_SERVER["argv"][2] ;
 
    $aResult = TestS3DServer ( $ServerAddress ,  $ServerPort);
 
    if ( $aResult["result"] == "success")
    {
 
        echo "Server took "         . $aResult["ServerDelay"    ]  ." sec to answer.\n\n";                    
        echo "Connection count: "   . $aResult["ConnectionCount"] ."\n";
        echo "User count\t: "       . $aResult["UserCount"      ] ."\n";
        echo "Commands parsed\t: "  . $aResult["CommandParsed"  ] ."\n";
        echo "Send (Bytes)\t: "     . $aResult["SendBytes"      ] ."\n";
        echo "Received (Bytes): "   . $aResult["ReceivedBytes"  ] ."\n";
        echo "NetworkLoop\t: "      . $aResult["NetworkLoop"    ] ."\n";
 
		if($aResult["ServerDelay"]>10)
		{
		echo "Temps de réponse supérieur à 10s : Redemarrage du serveur		\n";
			$cmd1="S3DServer_script stop &";
			shell_exec($cmd1);
			$cmd2="S3DServer_script start &";
			shell_exec($cmd2);
			echo "Serveur 3D redemarré \n";
		    exit;
		}
 
    }
    else
     {
        echo "Test has failed : " . $aResult ["result"] ."\n";
		echo "Aucune reponse du serveur : Redemarrage ...  \n";
			$cmd1="S3DServer_script stop &";
			shell_exec($cmd1);
			$cmd2="S3DServer_script start &";
			shell_exec($cmd2);
 
		echo "Serveur 3D redemarré \n";
		exit;
     }
 
}
else if ($_SERVER["argc"]>0)
{
    echo "Usage: php  ". $_SERVER["argv"][0]." Address Port\n";
}
else 
{
    echo "Usage: php  ServerTest.php Address Port\n";
}
 
 
?>

Methodes de S3DServer_script

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
16
17
18
19
20
21
22
23
24
25
26
 stop)
		if [ -e $S3DServerLife ]; then
			echo "Stopping S3DServer Advanced 1.5.1 for Linux"
			if ( kill -TERM `cat $S3DServerLife` ); then
				for c in $(seq 1 5); do
					if [ -e $S3DServerLife ]; then
						echo -n "."
						sleep 1
					else
                        break
                    fi
				done
			fi
			if [ -e $S3DServerLife ]; then
				echo "S3DServer fail to stop properly - killing"
				kill -KILL `cat $S3DServerLife`
				rm $S3DServerLife
				sleep 5
			else
				echo "done"
			fi
		else
			echo "S3DServer is not running."
			exit 7
		fi
	;;


Et voici ma 2eme question, le script est bien exécuté, avec le stop pou le start fonctionnent mais par exemple je ne vois pas les textes echo "S3DServer fail to stop properly - killing" ou tout les autres echo dans le start et le stop alors que quand je les éxécute en SHELL directement je les vois.

Bon je ne sais pas si c'est clair et si quelqu'un aura la force de lire et de m'aider mais je vous remerci d'avance.