Linux, serveur web et status de jeu

Salut!

J’ai donc installé sur mon serveur Linux un serveur web (apache + php + mysql).

Je me sers des pages des utilisateurs unix actuellement, mais il n’y a aucune page directement sur mon nom de domain (on met http://nom_domaine/utilisateur pour accéder à une page).

Je vais donc faire une page directement sur le nom de domaine, avec la liste des pages utilisateurs.

Mais j’aimerai aussi ajouter autre chose. Ce serveur héberge un serveur Steam Half-Life1 Deathmatch occasionnellement (voire rarement).
J’aimerai afficher sur la page le status du serveur HL (actif ou pas). Existe t-il une solution?

Ah OK, je crois avoir saisi ! La rubrique OS War&Tips est devenue le nouveau blog de bluelambda.

J’ai bon ? :stuck_out_tongue:

est ce que la commande “monserveur -status” existe ?
si oui tu peux tenter un system(“cette commande”); sur la page

unreal > arrête d’essayer de me casser tout le temps, je vois pas ce que tu as contre moi en ce moment, mais àa devient lourd…

fser > il faudrai que je me renseigne là dessus. Je n’avais pas pensé à faire comme ça!

[code]$ ./hlds_run -help
Syntax:
./hlds_run [-game ] [-debug] [-norestart] [-pidfile]
[-binary [hlds_i486|hlds_i686|hlds_amd|hlds_amd64]
[-timeout ] [-gdb ] [-autoupdate]
[-steamerr] [-ignoresigint] [-steamuser ]
[-steampass ] [-debuglog ]
Params:
-game Specifies the to run.
-debug Run debugging on failed servers if possible.
-debuglog Log debug output to this file.
-norestart Don’t attempt to restart failed servers.
-pidfile Use the specified to store the server pid.
-binary Use the specified binary ( no auto detection ).
-timeout Sleep for seconds before restarting
a failed server.
-gdb Use as the debugger of failed servers.
-steamerr Quit on steam update failure.
-steamuser Use this username for steam updates.
-steampass Use this password for steam updates
(-steamuser must be specified as well).
-ignoresigint Ignore signal INT ( prevents CTRL+C quitting
the script ).
-notrap Don’t use trap. This prevents automatic
removal of old lock files.

Note: All parameters specified as passed through to the server
including any not listed.[/code]ici déjà il n’y a rien pour savoir le status du serveur.

J’ai peut être un autre moyen du genre.

Pour lancer mon serveur j’utilise la commande:
screen -dmS hl ./hlds_run -game valve +maxplayers 8 +map crossfire +port 27015

Et pour voir ce qui se passe, entrer des commandes, je fais simplement un:
screen -r hl

Si le serveur est lancé, j’ai tout ce que j’ai déjà entré, tous les messages du serveur qui apparaissent. Pour quitter et revenir à la console utilisateur je fais CTRL+A et ensuite D.

Si le serveur n’est pas actif, j’ai un message me disant que le screen nommé hl n’existe pas.

Je n’ai que quelques notions de PHP et de programmation web, mais peut être n’est-il pas trop compliqué de relever l’état du serveur de cette manière? Et peut être même de récupérer la sortie “status” dans la console serveur hl pour savoir l’état du jeu, les joueurs…

EDIT en passant: comment on fait déjà pour avoir une barre de défilement sur ma citation plus haut?

Il existe un protocol (dont je ne me souviens plus du nom) pour voir ou controler des serveurs hl a distance. C’est utilisé par des programmes dans ce genre. Regarde s’il n’y a pas moyen de faire un petit cgi-bin utilisant le protocole.

Ah en fait je viens de penser a une solution plus conne : suffit de regarder si le port utilisé par le serveur hl est occupé

Ah oui c’est une bonne idée justement! Je recherche la solution la plus simple en fait :stuck_out_tongue:

PHP me permet de voir si le port est utilisé?

[quote name=‹ bluelambda › date=’ 1 Aug 2005, 15:45’]Ah oui c’est une bonne idée justement! Je recherche la solution la plus simple en fait :stuck_out_tongue:

PHP me permet de voir si le port est utilisé?
[right][post=« 382341 »]<{POST_SNAPBACK}>[/post][/right][/quote]

utlisé non, mais actif oui

fsockopen…

ça m’étonnerais d’ailleurs que ce genre d’outils n’existe pas déjà

sinon en l’état tu peux te contenter d’un simple

[code]

<?php exec ("screen -r hl", $lines) foreach($lines as $line) {  echo $line,'\n'; } ?>

[/code]

yaura ptet qq pbms de droits utlisateurs…

Pour le web > Hmm… si j’ai bien compris, en supposant que ton serveur ait sa racine dans /var/www, les pages sont hostées dans /var/www/toto, /var/www/tata et ainsi de suite ? Dans ce cas, en placant un index.html dans /var/www, ça devrait fonctionner. En tout cas, chez moi, ça fonctionne (je me sers de ça pour faire une redirection des sites que j’ai banni de chez moi en local). Si c’est pas ça, alors tirez moi dessus :P.

Jojosan > pour la redirection je sais comment faire :stuck_out_tongue:
Effectivement avec un index.html dans /var/www ça marche! Les dossiers des utilisateurs ne son quand à eux pas dans /var/www/toto ou tata, mais dans les répertoires des utilisateurs. Mais cela ne pose aucun problème.
http://adresse_du_serveur/~toto ou tata :stuck_out_tongue:

kursk > effectivement il y aura un problème de droits, dans la mesure où la console hl a été ouverte par un autre utilisateur et seul lui y a accès. Je vais y réfléchir.

Ceci ou ceci devrai t’aider je pense :
http://freshmeat.net/projects/rcon/
http://www.pberndt.com/Projekte.Codesnippl…con+Klasse.html
je les ai trouvé en cherchant “rcon php” sur google.

Merci Staz!
Le deuxième lien que tu as trouvé après quelques modifications du code me convient à 100% :stuck_out_tongue:

j’avais essayé de coder un truc comme ça pour ET mais je n’ai jamais trouvé la commande pour obtenir le nombre de joueurs sans avoir le Rcon pass
nb : ça doit etre possible, la preuve ase ou meme ET y arrivent :stuck_out_tongue: