Skrypt na stronie www - start/stop serwera gry

Potrzebujesz pomocy z C, C++, perl, python, itp.
4fmariusz
Posty: 7
Rejestracja: 21 października 2008, 19:52

Skrypt na stronie www - start/stop serwera gry

Post autor: 4fmariusz »

Witam
Chcę zrobić panel administracyjny serwera do gry call of duty.
Posiadam Skrypt do uruchomienia serwera lecz nie działa. Nie wiem co jest nie tak?
serwer.php

Kod: Zaznacz cały

<?
//KONFIGURACJA

//KONFIGURACJA Serwera
$apname="cod"; //nazwa serwera np cs
$sciezka="/home/cod/"; //Sciezka do serwera
$konfig="start.sh"; //nazwa pliku konfiguracyjnego

?>
<html>
<head>
<title>Panel</title>
</head>
<body>

[url=?co=wlacza]WLACZ Serwer[/url] <|> [url=?co=wylacza]WYLACZ serwer[/url]

<?

if ($co=='wylacza')
{
system('kill -9 $(ps auxwww | grep -v grep |grep '.$konfig.'  | grep '.$apname.' | awk \'{print $2}\')');
}
if ($co=='wlacza')
{
$adres=$sciezka.$apname.' '.$sciezka.$konfig.' &';
system($adres);
}
?>
</body>
</html>
Start.sh

Kod: Zaznacz cały

./coduo_lnxded +set dedicated 2 +exec default_mp.cfg +map_rotate& 
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Cześć
Po pierwsze - jeśli odpalasz skrypt PHP z serwera WWW, to odpalasz go z prawami właściciela serwera, jeśli jest to Apache to najprawdopodobniej jest to www-data. Podejrzewam że po prostu ten użytkownik nie może wystartować serwera gry. Jeśli chcesz odpalić ten skrypt jako root na serwerze polecam zainteresować się

Kod: Zaznacz cały

sudo
Jeśli go nie masz to zainstaluj, a potem z roota:

Kod: Zaznacz cały

visudo
Na końcu otworzonego pliku dodaj linię:

Kod: Zaznacz cały

www-data   ALL= (root) NOPASSWD:/sciezka/do/start.sh
No i w skrypcie zamiast

Kod: Zaznacz cały

system($adres); 
wywołuj

Kod: Zaznacz cały

system(sudo $adres); 
Dzięki temu skrypt będzie uruchamiany z prawami root'a. Jeśli by coś nie działało to pisz.
fenix23
Posty: 62
Rejestracja: 09 października 2008, 17:47

Post autor: fenix23 »

A co w przypadku jak użytkownik 4fmariusz musi odpalić to jako daemon, którego właścicielem jest 4fmariusz?

Jak nie ma uprawnień roota?
Ja mam pytanie dlaczego nie działa? Czy polecenia, które wykonuje skrypt działają w bashu? Może to kwestia łapek :] nie 'tylko` :]
bandrzal
Posty: 1
Rejestracja: 28 lutego 2009, 10:58

Post autor: bandrzal »

Witam. Chciałbym napisać prosty skrypt do panelu administracyjnego serwera gry na stronie, który by startował i stopował serwer. Ma ktoś jakiś pomysł?
ODPOWIEDZ