Это РНР для локальныx серверов клуба:
Код: Выделить всё
<?php
# Описание серверов в формате:
# array ( 'игра', 'адрес', 'статус' ,'пользователь','скрипт запуска'
# статус - указывает заданное состояние сервера: 0 - отключен, 1- включен
# пользователь - под какой учеткой работает игровой сервер
# скрипт запуска - должен понимать команду start, stop, restart.
# располагается в папке со скриптом перезапуска
$arr = array(
array('-a2s','169.254.82.20:27015','1','ugniy','/home/ugniy/start/csw.sh'),
array('-a2s','169.254.82.20:27016','1','ugniy','/home/ugniy/start/cs16.sh'),
array('-hls','169.254.82.20:27019','1','ugniy','/home/ugniy/start/tfc.sh'),
array('-hls','169.254.82.20:27021','1','ugniy','/home/ugniy/start/hl.sh'),
array('-hls','169.254.82.20:27022','1','ugniy','/home/ugniy/start/dod.sh'),
array('-hls','169.254.82.20:27025','1','ugniy','/home/ugniy/start/ts.sh'),
array('-a2s','169.254.82.20:27026','1','ugniy','/home/ugniy/start/aoc.sh'),
array('-a2s','169.254.82.20:27027','1','ugniy','/home/ugniy/start/pvkii.sh'),
array('-a2s','169.254.82.20:27028','1','ugniy','/home/ugniy/start/zps.sh'),
array('-a2s','169.254.82.20:27500','1','ugniy','/home/ugniy/start/l4d_v.sh'),
array('-a2s','169.254.82.20:27502','1','ugniy','/home/ugniy/start/l4d_c.sh'),
array('-a2s','169.254.82.20:27504','1','ugniy','/home/ugniy/start/l4d_s.sh'),
array('-a2s','169.254.82.20:27600','1','ugniy','/home/ugniy/start/l4d2.sh'),
array('-q3s','169.254.82.20:26000','1','ugniy','/home/ugniy/start/nex.sh'),
array('-uns','169.254.82.20:7777','1','ugniy','/home/ugniy/start/ut99.sh'),
array('-ut2004s','169.254.82.20:7707','1','ugniy','/home/ugniy/start/kf.sh')
);
$i = 0;
$r_fp="";
for ($i = 0; $i < count($arr); $i++) {
$r_game = $arr[$i][0];
$r_ip = $arr[$i][1];
$r_status = $arr[$i][2];
$r_user = $arr[$i][3];
$r_cmd = $arr[$i][4];
$query = " qstat -u " . $r_game . " " . $r_ip ;
exec($query,$r_fp);
if (empty($r_fp[1])){
if ($r_status==1)
{$r_cmd = "su " . $r_user ." ". $r_cmd . " restart";
system($r_cmd, $ret);
}
else {}
}
else {
if ($r_status==0)
{$r_cmd = "su " . $r_user . " " . $r_cmd . " stop";
system($r_cmd, $ret);
}
else {}
}
$r_fp = "";
}
?>
Мониторятся севера (по порядку)
2 CStrike 1.6
TeamFortress Classic
HLDM
Dayofdefeat
The Spesialists
Age of Chilavry
Pirates, Vikings, Knight 2
Zombie Panic
Left for Dead (3 сервера с разными режимами и один сервер на 2 L4D)
Nexuiz
UnrealTournament 99
Kiling Floor
Не могу только GTA samp прикрутить к этой системе. (
Добавлено спустя 9 минут 56 секунд:
Re: ВОПРОС: Автозапуск, Автозагрузка Dedicated Servers in Linux
Скрипт для отладки описания серверов в массиве. Просто выводит состояние серверов. Помешается в любое место на Web. Не забыть про обязательное наличие
qstat
Код: Выделить всё
<?php
# Описание серверов в формате:
# array ( 'игра', 'адрес', 'статус' ,'пользователь','скрипт запуска'
# статус - указывает заданное состояние сервера: 0 - отключен, 1- включен
# пользователь - под какой учеткой работает игровой сервер
# скрипт запуска - должен понимать команду start, stop, restart.
# располагается в папке со скриптом перезапуска
$arr = array(
array('-hls','169.254.82.20:27015','1','ugniy','cs16.sh'),
array('-hls','169.254.82.20:27016','1','ugniy','csw.sh'),
array('-a2s','ugniy.ru:27018','1','ugniy','csw.sh'),
array('-hls','169.254.82.20:27019','1','ugniy','tfc.sh'),
array('-hls','169.254.82.20:27021','1','ugniy','hl.sh'),
array('-hls','169.254.82.20:27022','1','ugniy','dod.sh'),
array('-hls','169.254.82.20:27025','1','ugniy','ts.sh'),
array('-a2s','169.254.82.20:27026','1','ugniy','aoc.sh'),
array('-a2s','169.254.82.20:27500','1','ugniy','l4d_v.sh'),
array('-a2s','169.254.82.20:27502','1','ugniy','l4d_c.sh'),
array('-a2s','169.254.82.20:27504','1','ugniy','l4d_s.sh'),
array('-a2s','169.254.82.20:27600','1','ugniy','l4d2.sh'),
array('-uns','169.254.82.20:7777','1','ugniy','ut99.sh'),
array('-q3s','169.254.82.20:26000','1','ugniy','nex.sh'),
array('-sa','169.254.82.20:7774','1','ugniy','gta.sh'),
array('-ut2004s','169.254.82.20:7707','1','ugniy','kf.sh'),
array('-hls','csmania.com.ua:27015','1','Lik','27015'),
);
$i = 0;
$r_fp="";
for ($i = 0; $i < count($arr); $i++) {
$r_game = $arr[$i][0];
$r_ip = $arr[$i][1];
$r_status = $arr[$i][2];
$query = " qstat -u " . $r_game . " " . $r_ip ;
exec($query,$r_fp);
if ($r_fp[1] == ""){
if ($r_status == 1)
{$r_cmd= $i . " " . $r_ip . " Sorry, Not Worked";}
else {$r_cmd= $i ." " . $r_ip . " OK, Not Worked";}
}
else {
if ($r_status==0)
{$r_cmd = $i ." " . $r_fr[1] . " OOO, Worked?";}
else {$r_cmd = $i ." " . $r_fp[1] ." OK, Worked";}
}
echo $r_cmd . "<br>";
$r_fp = "";
}
?>
получится чтонить типа такого
http://212.12.20.245/