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.
Partager