PDA

Bekijk Volledige Versie : Start/stop script hlds via php of cgi?



Freezer
11/07/06, 10:59
Hoi,

ik heb al eens gegoogled, maar kan geen nuttige resultaten vinden.
Ik zoek eigenlijk een heel simpel start/stop script voor een counterstrike server.

Ik heb een cs server, en wil graag hem starten via het web zodat ik een paar andere mensen ook de mogelijkheid kan geven de server te starten of te stoppen zonder ze een ssh login te geven.

Weet iemand of dit er is? En zoja, graag info :)

_arno_
11/07/06, 11:14
Dit zou een optie kunnen zijn:



<?
$commandline = './hlds +weetikveel +weetikveel'; // jou command line om te starten dus :P
exec($commandline);
?>

En anders zou je shell_exec kunnen proberen, uiteraard even rechten bekijken.

ErikKosters
11/07/06, 11:29
denk niet dat je op gameservers apache draait :)
wijzelf gebruiken webmin.

Freezer
11/07/06, 11:33
Toevallig de server die ik zelf gebruik wel :)

@ErikKosters: Welke module?

ErikKosters
11/07/06, 12:40
gewoon webmin installen en dan kan je gebruikers en groepen aanmaken en daar dan commando's aankoppelen welke dan start en stop files aanroepen :)

Freezer
11/07/06, 13:07
Aha, handig :) Is inderdaad slimme workaround :)

B3rt
11/07/06, 13:50
Inderdaad webmin werkt prima en ook nog eens gratis.
In webmin kun je users aanmaken en commando's die je dan de users kan laten bedienen.

Succes

_arno_
11/07/06, 14:06
Of misschien een kleine deamon maken welke luisters naar een poort en hieruit commands uitvoert.

En er stond nergens dat hij op de gameservers geen apache draaide ;)

B3rt
11/07/06, 14:34
Als je webmin installeerd hoef je geloof ik niet apart apache te installeren, maar ik kan er naast zitten.

royen99
11/07/06, 14:38
Als je webmin installeerd hoef je geloof ik niet apart apache te installeren, maar ik kan er naast zitten.

Klopt, webmin werkt stand-alone en is zeer goed te gebruiken als een budget (gratis) game control panel.

_arno_
11/07/06, 14:39
Nu ik het even terug lees was mijn eerste idee zeker een oplossing aangezien hij in zijn title zegt:

Start/stop script hlds via php of cgi?
Ik gaf hem een oplossing via php :P

WI-Hosting
11/07/06, 14:54
Als je zelf een panel wilt bouwen kan je het ook doen via het libssh2 principe in php.

Door libssh2 te installeren (Google!) kan je met php inloggen op een remote server met ssh en commands uitvoeren. Zeer handig alleen moet je er wel even wat tijd voor nemen om goed te beveiligen en de panel te bouwen.

WF WebHosting
11/07/06, 17:42
Wij gebruiken ook webmin, alle users (klanten) krijgen bij aanmaken server een username en pass die ze kunnen gebruiken voor webmin.

Ze kunnen dat zelf hun server stoppen starten of restarten.

Wij hebben er veel profijt van en @B3rt het is nog gratis ook :)

Blade

_arno_
12/07/06, 09:06
Is webmin niet onnodig zwaar voor zoiets kleins als restarten?

Is het schrijven van een minimale deamon dan uiteindelijk niet verstandiger?

DoMMeL
12/07/06, 10:56
Misschien heb je hier wat aan?

http://linux.softpedia.com/get/GAMES-ENTERTAINMENT/FPS/HLDS-Control-Panel-4492.shtml

Freezer
12/07/06, 13:35
Misschien heb je hier wat aan?

http://linux.softpedia.com/get/GAMES-ENTERTAINMENT/FPS/HLDS-Control-Panel-4492.shtml

Ziet er goed uit, die ga ik zeker testen :)

En de webmin oplossing is ook handig, dat zonder meer.

swedendedicated
12/07/06, 15:42
Wij gebruiken ook webmin, alle users (klanten) krijgen bij aanmaken server een username en pass die ze kunnen gebruiken voor webmin.

Ze kunnen dat zelf hun server stoppen starten of restarten.

Wij hebben er veel profijt van en @B3rt het is nog gratis ook :)

Blade

Wat zijn jouw commands om de server te stoppen?

B3rt
13/07/06, 01:18
Elke server heeft zijn eigen installatie map en in elke map plaatsen wij een bestand wat we server.init hebben genoemd

In deze init file zetten we per game de parameters, dit is een voorbeeldje van een mohaa spearhead server:



#!/bin/sh

IP="hier het IP adres van de server";
PORT="de gewenste gameport hier"
CONFIG="server.cfg";

DAEMON="/usr/local/sbin/daemonize"
PROGRAM_DIR="/hier patch naar de files/";
PROGRAM="spearhead_lnxded";
PROGRAM_ARGUMENTS="+set dedicated 1 +set +set fs_homepath $PROGRAM_DIR ui_console 1"
if [ -n "$PORT" ]; then
PROGRAM_ARGUMENTS="$PROGRAM_ARGUMENTS +set net_port $PORT";
fi;
if [ -n "$IP" ]; then
PROGRAM_ARGUMENTS="$PROGRAM_ARGUMENTS +set net_ip $IP";
fi;
if [ -n "$CONFIG" ]; then
PROGRAM_ARGUMENTS="$PROGRAM_ARGUMENTS +exec $CONFIG";
fi;
PROGRAM_DESC="Mohaa server (${IP}:${PORT})";

cd "${PROGRAM_DIR}";
case $1 in
start)
if [ -f "${PROGRAM}.pid" ]; then
kill `cat "${PROGRAM}.pid"` 2>/dev/null 1>/dev/null && rm -rf "${PROGRAM}.pid" && echo "${PROGRAM_DESC} is gestopt"
fi;
${DAEMON} -p "${PROGRAM_DIR}${PROGRAM}.pid" ${PROGRAM_DIR}${PROGRAM} ${PROGRAM_ARGUMENTS};
echo "${PROGRAM_DESC} is gestart"
;;
stop)
if [ -f "${PROGRAM}.pid" ]; then
kill `cat "${PROGRAM}.pid"` 2>/dev/null 1>/dev/null && rm -rf "${PROGRAM}.pid" && echo "${PROGRAM_DESC} is gestopt" || echo "${PROGRAM_DESC} draaide al niet meer";
else
echo "${PROGRAM_DESC} is niet gestart";
fi;
;;
status)
if [ -f "${PROGRAM}.pid" ]; then
running=$(ps auxwww | tr -s ' ' | cut -d' ' -f2 | grep "^`cat "${PROGRAM}.pid"`$");
if [ -n "$running" ]; then
echo "${PROGRAM_DESC} draait nog";
else
echo "${PROGRAM_DESC} draait niet meer";
fi;
else
echo "${PROGRAM_DESC} is niet gestart";
fi;
;;
*)
echo "usage: $0 (start/stop/status)";
;;
esac;



Dan maak je via custom commands een commando aan, bv
start mohaa server
command line:
/path.to.files.here/server.init start
Run as user: <kies de user onder welke je het wil draaien> en vink aan Use user's enviroment

Voor stoppen van de server verander je start in stop :)

Maak een nieuwe webmin user aan en geef deze rechten om de start en stop knop te bedienen.

Als je goed bent met scripten(bv PHP) kan je ook een script maken en laat je je webserver inloggen en op de start of stop knop drukken.
Op die manier heb je een heel veilige remote login en kan je de webmin toegang beperken tot jezelf en de webserver.

DruM
13/07/06, 06:00
ik ben vandaag hier mee begonnen http://www.gamehound.net/~hldstart/ tot nu toe werkt het 100%

D. ter Horst
13/07/06, 14:36
denk niet dat je op gameservers apache draait :)
wijzelf gebruiken webmin.

Kleine correctie:

Je kunt PHP ook als stand-alone draaien, je hebt namelijk ook geen Apache nodig voor zulke zaken. In PHP kun je ook een deamon maken welke op bepaalde poorten luisterd. Zo zou je een app kunnen bouwen welke je centraal kunt aansturen maargoed dat is niet wat voor in dit topic denk ik :)