Spuštění HLDS na linuxu pomocí utility screen

Jak mnozí z vás ví pod windows lze spustit dedikovaný HLDS server, který pak běží na liště jako minimalizované okno nebo ho lze také spustit jako službu, kde ale nemáte možnost zasahovat do chodu a nastavení serveru.
My si teď ukážeme jak lze na linuxu spustit dedikovaný server jako službu, do které můžeme kdykoliv vstoupit a následně vystoupit, zjednodušeně řečeno.

Vše co k tomu potřebujeme je mít nainstalovanou utilitu screen, která by měla být součásti většiny linuxových distribucí. Dále je potřeba vytvořit spustitelný soubor, který nazveme např. start.sh a umístíme ho do adresáře kde máme nainstalovaný HLDS server.

Příklad vytvoření spustitelného souboru:
[root@server]# cd /cesta/kde/je/nainstalovany/hlds/
[root@server]# touch start.sh
[root@server]# chmod +x start.sh


Nyní je potřeba do souboru start.sh vložit samotné spuštění utility screen a k tomu patřičné přepínače.
screen -A -m -d -S hlds_test ./hlds_run.sh -game cstrike +ip 192.168.1.1 +port 27015 +map de_dust2 +maxplayers 18 +log on &


Tak teď to vezmeme postupně co znamená co. Parametr -A zajistí správné zobrazení terminálového okna při přepnutí do běžící screeny, -m -d určuje, že se má screen spustit v tzv. "detached" modu, což znamená že screen pojede jako služba na pozadí, -S nám pojmenuje screen tak aby jsme se do něj mohli později podívat. V našem případě se jmenuje hlds_test. Následně voláme další spustitelný soubor se jménem hlds_run.sh, který obsahuje:
#!/bin/sh
export LD_LIBRARY_PATH=.:LD_LIBRARY_PATH
while (true) do
./hlds_run $*
echo Restartuji za 10 s ...
sleep 10
done


Je to klasický bash script, který nám zajistí to, že pokud, ať už ve hře, nebo např. v HLSW zadáte rcon quit, tak se HLDS server sám restartuje aniž by jste museli mít terminálový přístup k serveru.

Takže pokud spustíte HLDS tímto způsobem aplikace běží na pozadí a kdykoliv se do ní můžete připojit a to tímto způsobem:
[root@server]# screen -r hlds_test
Nyní jste přímo ve spuštěné aplikaci HLDS a můžete provádět změny pomocí příkazů.

POZOR: pokud budete chtít odejít zpět do terminálu je nutné aby jste zvolili kombinaci kláves ctrl+a+d jinak by se běžící HLDS server zastavil.

posted by B0biN on April 8th, 2005 at 14:43
comments: 4
views: 3466