DEDIBOX-NEWS.COM

Le Forum Non Officiel de la DEDIBOX

Vous n'êtes pas identifié.

#1 2007-10-29 15:30:00

bedo
Je débarque
Date d'inscription: 2007-10-29
Messages: 4

lancer call of duty via php

Bonjour a tous,

j'ai un script sh pour lancer, stoper, et voir le status de call of duty, le script fonctionne très bien via la console ssh putty.

Code:

#!/bin/sh
#je suis obliger de rajouter cela pour que ça fonctionne correctement je ne comprend pas pourquoi mais bon ça fonctionne ;)
cd /home/bedo/
#si je supprime cela ne fonctionne plus
APP_PATH=/home/bedo/
#fichier pid 
PID_FILE=cod2.pid
#le port du serveur cod2
PORT=28960
#le nombre de slots pour le serveur
SLOTS=20
#le nom du fichier de configuration du serveur qui doit etre dans le repertoire main
CFG=server.cfg
#l'utilisateur unix qui lance le deamon
USER=bedo
#la prioriter nice de lancement du processus default 0 prioriter plus elever -20 moins elever 20 (perso je mais 10) 
NICE=10
#pour les mods utiliser 
FS_GAME=Modes
#download 0/1 desactiver/activer
DL=0
#upload tag et autre sur le serveur 0/1 desactiver/activer
UL=0
#fichier de log du serveur de jeux
LOG=team_cod2.log

if [ -r /lib/lsb/init-functions ]; then
. /lib/lsb/init-functions
LOG_BEGIN="log_begin_msg"
LOG_END="log_end_msg"
else
LOG_BEGIN="echo -n"
LOG_END=`printf "echo .\n"`
fi

test -x $APP_PATH/cod2_lnxded || exit 0

start() {
$LOG_BEGIN "Demarrage de Call of Duty 2 serveur: cod2_lnxded" 
start-stop-daemon -S -u $USER -N $NICE -p $PID_FILE -m $PID_FILE \
-d $APP_PATH -b --exec ./cod2_lnxded \
+set dedicated 2 +exec $CFG +set fs_game $FS_GAME +set net_port $PORT +set sv_punkbuster 1 +set sv_maxclients $SLOTS +sv_allowupload $UL +sv_allowdownload $DL +g_log $LOG +g_logsync 1
$LOG_END $?
}

stop() {
$LOG_BEGIN "Arret de Call of Duty 2 : cod2_lnxded"
start-stop-daemon -K -p $PID_FILE -d $APP_PATH
$LOG_END $?
}

status() {
if [ -e $PID_FILE ]; then
echo "Call of Duty 2 est lancer sur le PID `cat $PID_FILE`"
else
echo "Call of Duty 2 n'est pas lancer"
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
status)
status
;;
*)
log_success_msg "Utilisation: callofduty2-serveur-deamon {start|stop|reload|status}"
exit 1
;;
esac
exit 0

jusque là aucun soucis sa fonctionne très bien.

Mon soucis et que j'aimerais lancer ce script via une interface php. j'ai un petit exemple qui me renvoi des erreurs.

le php :

Code:

echo shell_exec('/home/bedo/test.sh start');

le script sh me renvoi juste :

Code:

Demarrage de Call of Duty 2 serveur: cod2_lnxded ...fail!

je récupére bien les lignes des echo du sh, mais le server ne démarre pas, les droits son ok sur le fichier cod2_lnxded.

Une petit idée ? big_smile

Hors ligne

 

#2 2007-10-29 19:15:43

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: lancer call of duty via php

Problème de permissions probablement.

Une "solution" à deux balles:
1/ Le site Web, quand tu veux démarrer CoD crée un fichier, disons /var/www/monsite/START_COD
2/ A intervalle régulier (crontab!) t'as un script shell qui regarde si le fichier /var/www/monsite/START_COD existe
--> si oui, le script supprime le fichier en question puis démarre code

Doît être possible de faire la même magouille pour arrêter le serveur de jeu.

Hors ligne

 

#3 2007-10-29 19:17:49

bedo
Je débarque
Date d'inscription: 2007-10-29
Messages: 4

Re: lancer call of duty via php

je ne pense pas qu'il s'agisse de soucis de permission vu que le php récupére bien les infos du sh si le server est lancé, inactif etc ....

Hors ligne

 

#4 2007-10-29 19:41:19

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: lancer call of duty via php

Vérifier qu'un process tourne n'a rien à voir avec l'exécuter.

Faut voir les permissions de fichier, mais si tu dis à ton serveur CoD d'écrire un pidfile dans un répertoire où t'as pas les permissions, il est très probable que ton serveur vautre misérablement.

Hors ligne

 

#5 2007-10-30 06:16:25

bedo
Je débarque
Date d'inscription: 2007-10-29
Messages: 4

Re: lancer call of duty via php

toutes les permissions sont ok, essayé en root, et autre compte avec les bonnes permissions, la j'avoue que je ne pige pas

Hors ligne

 

#6 2007-10-30 08:25:54

Calimero
Maitre Jeidi
Lieu: 94 | 67
Date d'inscription: 2006-05-05
Messages: 2729

Re: lancer call of duty via php

Faut se rappeler que via le site Web, tu exécutes très probablement en tant que "www-data" ou "nobody".

Avec root, heureusement que ca marche. tongue

Hors ligne

 

#7 2007-10-30 08:33:42

bedo
Je débarque
Date d'inscription: 2007-10-29
Messages: 4

Re: lancer call of duty via php

donc je suppose qu'il y a moyen d'accorder a un user du group www-data les bonne permissions ? serait-ce chown user et nom de fichier ? merci de m'éclairer suis un peu perdu avec le system de permissions

Hors ligne

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson