PDA

Bekijk Volledige Versie : [PHP] Gameserver starten



PaulE
13/07/06, 15:52
Yoo gasten,

Ik heb gehoord dat je via http://nl3.php.net/manual/nl/function.shell-exec.php commands op je linux bak kan uitvoeren.

Als ik via putty ps x doe zie ik mijn sofserver gewoon draait, maar als ik dit doe:

shell_exec("ps x");

Krijg ik heleboel dingen van HTTPD ofzo te zien, geen idee wat dat is.
Maar iig, als ik daT DUS VIA PUTTY DOE krijg ik dat niet te zien.

Hoe kan ik dus via een PJP bestand access krijgen netzoals ik met putty heb?

Thnx gasten :lovewht:

Thijssss
13/07/06, 16:07
Volgens mij komt dat doordat als jij met putty inlogd.. op je eigen gebruikersnaam, die sof server van je ook als die gebruiker draait.

Als je via een php script 'ps x' uitvoert, word dit als php gebruiker gedaan en daar valt ook alle httpd's etc' onder en niet je sof server.

PaulE
13/07/06, 16:10
maare hoe log ik in op die suername dan?

Kenneth
13/07/06, 16:22
ps x = apache user
ps ax = alle users + apache user

B3rt
13/07/06, 16:44
En dit werkt ook alleen als de web en game server 1 en dezelfde machine is wat eigenlijk ook al af te raden is.

PaulE
13/07/06, 16:48
Maar als ik een command wil uitvoeren om bijvoorbeeld mijn server te starten, hoe doe ik dat dan?..

Bento
13/07/06, 17:18
Ik gebruikte een bash scriptje, dit zou je kunnen aanroepen via PHP.


Server Herstarten
In .bashrc zet je eerst dit:


skill ()
{
kill -9 `ps ax | grep $1 | grep -v grep | awk '{print $1}'`
}

Dan maak je een file aan en zet je dit erin (werkt met screen)


#!/bin/bash
skill screen
screen -dmS $USER ./hlds_run -game czero +ip 81.171.74.68 +port 27015 +maxplayers 20 +map de_dust2_cz -pingbooster 1
start=`date '+%H:%M on %d/%m/%y'`
echo "$USER start $0 vanuit $PWD @ $start from $SSH_CLIENT ">>/usr/local/games/serverstart.log

Dit werkt alleen als je maar 1 server per user draait, anders killt het de andere screen sessies ook.

Server aanzetten


#!/bin/bash
screen -dmS $USER ./hlds_run -game czero +ip 81.171.74.68 +port 27015 +maxplayers 20 +map de_dust2_cz -pingbooster 1
start=`date '+%H:%M on %d/%m/%y'`
echo "$USER start $0 vanuit $PWD @ $start from $SSH_CLIENT ">>/usr/local/games/serverstart.log


Server Uitzetten


#!/bin/bash
skill screen


Nu zal ik wel te horen krijgen dat er andere manieren zijn, deze manier werkt. En voor mij is dat genoeg ;)

swedendedicated
13/07/06, 17:20
$screen
$./hlds_run +parametertje +iptje +portje +mod +exec config
ctrl+a+d

Weet zo niet 1 2 3 de parameters voor alles maar dit kun je zo opzoeken.

PaulE
13/07/06, 17:23
Hmm, ik wil het dus via PHP runnen ;)

Kenneth
13/07/06, 17:34
bash scripts kan je aanroepen via php... dus gebruik de voorbeelden van Bento of doe iets van shell_exec("cd /home/user; screen -dmS ./hlds_run xxxxxx");

Bento
13/07/06, 17:49
Noem het bestand bijv start_server.


<?php
// Gameservertje starten
shell_exec("/home/pipodeclown/hlds/start_server");
?>

Zou moeten werken ;)


Alhoewel ik denk dat dit niet gaat werken aangezien PHP niet werkt onder de user waar jij de server op draait. Dan zoekt het naar een screen sessie van dezelfde gebruiker als PHP.

PaulE
13/07/06, 18:02
Kan iemand misschien dan iets maken in C#++, C# of VB?
Gewoon een tooltje dat ik server opgeef, en dan mijn inlog gegevens van SSH, en dan dus START, RESTART of STOP kan doen?..

Bento
13/07/06, 18:06
Met die voorbeelden die ik gaf moet toch iets te doen zijn via PHP, misschien ben je beter af in het Scripting forum?

PaulE
13/07/06, 18:09
Kijk het probleem is, ik ben niet de server eigenaar ook, en snap zelf de ballen van SSH.

Kenneth
13/07/06, 18:12
ik denk niet dat zomaar iemand een heel script voor jou gaat maken, misschien wat tutorials opzoeken over linux commands e.d.?

Bento
13/07/06, 18:17
Kijk het probleem is, ik ben niet de server eigenaar ook, en snap zelf de ballen van SSH.
:eek: Wat moet je dan met een startup script als ik vragen mag

WI-Hosting
13/07/06, 19:41
Kan iemand misschien dan iets maken in C#++, C# of VB?
Gewoon een tooltje dat ik server opgeef, en dan mijn inlog gegevens van SSH, en dan dus START, RESTART of STOP kan doen?..

Dit is niet de bedoeling van WHT he ;)

We helpen je met problemen, maar we gaan niet zomaar dingen maken/scripten voor mensen :)

Je kan het beste de info hier gegeven doorlezen en verder google'n met de gegeven informatie of een exacte vraag stellen, niet "Hoe maak ik een control panel voor gameservers in php"-achtig.

Overigens, als je de server eigenaar niet bent, hoor je ook niet processen te starten en te stoppen denk ik zo :)

Als je geen root access hebt (of de user waaronder de gameserver draait) zal dit je ook niet lukken.

Bento
13/07/06, 20:18
Het makkelijkste vind ik gewoon Win2k3 met Paneldeamon draaien. Start, stop, restart en nog gratis ook. (Windows niet natuurlijk ;))

JayvD
14/07/06, 22:29
Het makkelijkste vind ik gewoon Win2k3 met Paneldeamon draaien. Start, stop, restart en nog gratis ook. (Windows niet natuurlijk ;))
En vol bugs. ;)

Als jij paneldaemon draait wil ik je server weleens weten.

Binnen 2 minuten zet ik al je services uit zonder zelfs maar in te loggen!

Bento
15/07/06, 23:01
En vol bugs. ;)

Als jij paneldaemon draait wil ik je server weleens weten.

Binnen 2 minuten zet ik al je services uit zonder zelfs maar in te loggen!
Hoe ;)

JayvD
15/07/06, 23:35
Hoe ;)
Open de files van Paneldaemon (de source files) en zoek naar de bugs ;).

Je kan ze downloaden bij sourceforge. Hou het liever voor mezelf ivm misbruik ervan.

Raad alleen niemand aan om paneldaemon te gebruiken!

Bento
16/07/06, 00:48
Moah ik had het toch al beveiligd via IIS met een extra login gevalletje dus tzal wel loslopen :)

Bento
20/07/06, 18:04
Gameservers.net gebruikt nu ook PanelDeamon :)

NDIS
20/07/06, 18:48
ik heb trouwens nog een vraag, is het ook via PHP mogelijk om van je webserver een andere server te bedienen met PHP?

Kenneth
20/07/06, 18:51
eh niet via ssh2 :)

NDIS
20/07/06, 19:40
hoe dan wel?

Kenneth
20/07/06, 21:04
google?, php.net? http://nl2.php.net/manual/en/ref.ssh2.php