Benötigt wird:
- Perl 5
- Config/Abstract/Ini
- GNU Screen
Installation vorbereiten
Das Perl Script muss auf der Maschine auf der die Gameserver laufen ausgeführt werden. Der Benutzer der das Script startet braucht die Rechte um Gameserver zu starten und zu stoppen, außerdem sollte er die Rechte haben Log und Config Datei zu schreiben.
Damit der Listener funktioniert muss Perl und Screen installiert sein, das sollte aber bei den meisten Distributionen so sein. Screen kann unter Debian ganz einfach als root mit
- Code: Alles auswählen
apt-get install screen
Auf manchen Distributionen fehlt das Perl Modul um ini Dateien zu lesen, in dem Fall muss die hier angehängte Datei installiert werden.
Fehlermeldung
- Code: Alles auswählen
Can't locate Config/Abstract/Ini.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./gameserver_listener.pl line 7.
BEGIN failed--compilation aborted at ./gameserver_listener.pl line 7.
Um das Fehlende Perl Modul zu installieren muss das hier angehängte Paket einfach entpackt und auf den Server geladen und dann als root mit
- Code: Alles auswählen
perl Makefile.PL
make
make test
make install
Listener installieren
Als erstes muss der Listener konfiguriert werden, dazu öffnet man die Datei games.ini mit einem Texteditor und passt folgende Zeilen an.
- Code: Alles auswählen
password = "geheim" ;Passwort
port = "8006 ;Port auf dem der Listener laufen soll
Wenn die Konfiguration angepasst wurde kann der Listener mit folgendem Befehl gestartet werden:
- Code: Alles auswählen
perl ./gameserver_listener.pl
Im Hintergrund starten
Wenn der Listener so gestartet werden soll das er nicht beendet wird wenn man die Konsole schließt muss Screen zum starten benutzt werden
- Code: Alles auswählen
screen -d -m -S listener ./gameserver_listener.pl
Automatisch beim start des Servers starten
Unter Debian
Damit der Listener automatisch gestartet wird wenn man den Server einschaltet muss unter /etc/init.d/ folgendes Script mit dem Namen gsa_listener.sh angelegt und ausführbar gemacht werden
- Code: Alles auswählen
#!/bin/sh
#
# start/stop listener daemon.
### BEGIN INIT INFO
# Provides: listener
# Required-Start: $network $all
# Required-Stop: $network
# Default-Start: 2 3 4 5 S
# Default-Stop: 0 1 6
# Short-Description: Gameserver Listener
# Description: Listener to start and stop Gameservers
# on this mashine. For additional informations see http://www.gameserveradmin.de
### END INIT INFO
case "$1" in
start)
start-stop-daemon --start --background --chuid gameserver --exec /home/gameserver/gameserver_listener.pl &
esac
exit 0
/home/gameserver/gameserver_listener.pl und der Benutzer mit dem der Listener und die Gameserver gestartet werden sollen --chuid gameserver angepasst werden. Wichtig ist das das & am Ende des Pfads stehen bleibt da der Server sonst nicht mehr richtig startet. Der Listener sollte auf keinen Fall als Root gestartet werden da sonst alle Gameserver auch als Root gestartet werden.Danach muss man folgenden Befehl ausführen
- Code: Alles auswählen
update-rc.d gsa_listener.sh defaults
