Sponsor-Board.de

Normale Version: CS:Go init.d Script Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag,

ich habe mir für meinenen Cs: GO Server ein init.d script erstellt um diesen Server bei einen neustart meines Root-Servers (Centos 6.5) automatisch neuzustarten, jedoch ist mir soeben ein merkwürdiges Problem aufgefallen.

Wenn ich das script direkt über "/etc/init.d/csgo_active start" ausführe klappt alles Problemlos und er startet den csgo server wie geplant im screen als user "csgo"

wenn ich das ganze jedoch über den kürzel "service csgo_active start" versuche startet der server nicht.

um herauszufinden wieso habe ich das script einmal ohne screen starten lassen um den Fehler auslesen zu können. Hier einmal die Fehlerausgabe:

Code:
Mon Sep  8 21:08:21 CEST 2014: Server Failed
Interrupt (core dumped)


hier einmal mein init.d script zur Einsicht:

Code:
#!/bin/bash
#
#
# chkconfig: 345 70 30

# Source function library.
#. /etc/init.d/css_standart
#/home/csgo/activeserver/

PROZESS="Counterstrike:go Active-Server"
USERDIR="/home/csgo"
USER="csgo"
SERVERDIR="activeserver"
SCREENNAME="activeserver"
SLOTS="16"
TICKRATE="128"
MAP="de_dust2"
PORT="27025"

case "$1" in
        start)
                echo "$PROZESS wird gestartet."
                su  $USER -c "screen -AmdS $SCREENNAME /$USERDIR/$SERVERDIR/srcds_run -game csgo -console -usercon +mapgroup mg_active -tickrate $TICKRATE +map $MAP -maxplayers_override $SLOTS -port $PORT +bot_quota 0"
                echo "$PROZESS wurde gestartet."
                ;;
        stop)
                echo "$PROZESS wird gestopt."
                su  $USER -c "screen -S $SCREENNAME -X quit"
                ;;
        restart)
                if pgrep -u $USER -f $SCREENNAME > /dev/null
                then
                echo "$PROZESS wird neugestartet."
                su  $USER -c "screen -S $SCREENNAME -X quit"
                su  $USER -c "screen -AmdS $SCREENNAME /$USERDIR/$SERVERDIR/srcds_run -game csgo -console -usercon +mapgroup mg_active -tickrate $TICKRATE +map $MAP -maxplayers_override $SLOTS -port $PORT +bot_quota 0"
                echo "$PROZESS wurde neugestartet."
                else
                echo -e "Der Server ist [\033[49;0;31m Offline \033[0m]"
                fi
                ;;
        status)
                if pgrep -u $USER -f $SCREENNAME > /dev/null
                then
                echo -e "Der Server ist [\033[49;0;32m Online \033[0m]"
                else
                echo -e "Der Server ist [\033[49;0;31m Offline \033[0m]"
                fi
                ;;
        *)
                echo "Benutze: csgo_active {start|stop|restart|status}"
                exit 1
                ;;
                esac
                exit 0




Über hilfreiche Beiträge würde ich mich freuen.

Grüße
Anqerfist91

nachdem der Status "Server Failed" nicht in deinem Script vorkommt, tippe ich mal auf eine falsche Konfiguration/Ausführung

versuch doch mal Zeile für Zeile in die Bash zu kopieren ob dies funktioniert. Denke so findest du den Fehler
ich denke einen konfigurationsfehler kann man ausschließen, da der server sonst auch nicht über "service csgo_active start" starten würde, da dieser befehl die selben befehle ausführt.
Das ist ein normales Start/Stop Script.
Um es als Dienst laufen zu lassen benötigst du noch einiges mehr an Informationen die in der Datei stehen muss als jetzt.
Für den automatischen Start, benötigst du noch "INIT" Einträge die dem Server sagen, was mit der Datei passieren soll.
z.B. Wann sie gestartet werden soll, wie usw.

Soetwas könnte z.B. so aussehen:

Code:
### BEGIN INIT INFO
# Provides: csgo
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: CSGO 3 Server
### END INIT INFO

Referenz-URLs