ЗАКРЫТЬ
Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Новости

30-дек
29-дек
26-дек
15-дек

4 страниц V  « 3 4

Как запускать сервера CS1.6 в виде сервисов linux

Статус пользователя c0rax
сообщение 24.1.2012, 11:46
Сообщение #61


Стаж: 9 лет 4 месяца

Сообщений: 1077
Благодарностей: 530
Полезность: 884

Цитата(Nindza @ 24.1.2012, 9:11) *
оно, спасибо )

Прям под носом же все было... :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nindza
сообщение 24.1.2012, 12:08
Сообщение #62
Стаж: 10 лет

Сообщений: 113
Благодарностей: 6
Полезность: < 0

Цитата(c0rax @ 24.1.2012, 13:46) *
Прям под носом же все было... :)

было то было, но тем с аналогичным названием тут море, в некоторых одно и то же, думал везде так

Отредактировал: Nindza, - 24.1.2012, 12:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя y4eHuK
сообщение 27.9.2012, 0:19
Сообщение #63


Стаж: 6 лет 1 месяц

Сообщений: 265
Благодарностей: 61
Полезность: 187

Кто нибудь может обьяснить мне как это сделать на CentOS.
Я имею в виду: " Как запускать сервера CS1.6 в виде сервисов linux" поскольку как понимаю есть отличия.
Хотел попробывать сделать так как писал ТС но не получается отредактировать hlds_run_class1 - я так обозвал файл.

hlds_run_class1
Код
#!/bin/sh
#
#       Copyright (c) 2002, Valve LLC. All rights reserved.
#
#    a wrapper script for the main hl dedicated server binary.
#    Performs auto-restarting of the server on crash. You can
#    extend this to log crashes and more.
#

# setup the libraries, local dir first!
export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"

init() {
    # Initialises the various variables
    # Set up the defaults
    GAME="valve"
    DEBUG=0
    RESTART="yes"
    HL=./hlds_i486
    HL_DETECT=1
    TIMEOUT=10 # time to wait after a crash (in seconds)
    CRASH_DEBUG_MSG="email debug.log to [email protected]"
    GDB="gdb" # the gdb binary to run
    DEBUG_LOG="debug.log"
    PID_FILE=""
    STEAM=""
    STEAMERR=""
    SIGINT_ACTION="quit 0" # exit normally on sig int
    NO_TRAP=0
    AUTO_UPDATE=""
    BETA_VERSION=""
    PARAMS=$*

    # Remove any old default pid files
    # Cant do this as they may be still running
    #rm -f hlds.*.pid

    # use the $FORCE environment variable if its set
    if test -n "$FORCE"; then
        # Note: command line -binary will override this
        HL=$FORCE
        HL_DETECT=0
    fi

    while test $# -gt 0; do
        case "$1" in
        "-game")
            GAME="$2"
            shift;;
        "-debug")
            DEBUG=1
            # Ensure that PID_FILE is set
            if test -z "$PID_FILE"; then
                PID_FILE="hlds.$$.pid"
            fi;;
        "-norestart")
            RESTART="";;
        "-pidfile")
            PID_FILE="$2"
            shift;;
        "-binary")
            HL="$2"
            HL_DETECT=0
            shift;;
        "-timeout")
            TIMEOUT="$2"
            shift;;
        "-gdb")
            GDB="$2"
            shift;;
        "-debuglog")
            DEBUG_LOG="$2"
            shift;;
        "-autoupdate")
            AUTO_UPDATE="yes"
            STEAM="./steam"
            RESTART="yes";;
        "-steamerr")
            STEAMERR=1;;
        "-ignoresigint")
            SIGINT_ACTION="";;
        "-notrap")
            NO_TRAP=1;;
        "-beta")
            BETA_VERSION="$2"
            shift;;
        "-help")
            # quit with syntax
            quit 2
;;
        esac
        shift
    done

    # Ensure we have a game specified
    if test -z "$GAME"; then
        echo "Unable to determine game type from command line."
        quit 1
    elif test ! -d "$GAME"; then
        echo "Invalid game type '$GAME' sepecified."
        quit 1
    fi

    if test 0 -eq "$NO_TRAP"; then
        # Set up the int handler
        # N.B. Dont use SIGINT symbolic value
        #  as its just INT under ksh
        trap "$SIGINT_ACTION" 2
    fi

    # Only detect the CPU if it hasnt been set with
    # either environment or command line
    if test "$HL_DETECT" -eq 1; then
        detectcpu
    fi

    if test ! -f "$HL"; then
        echo "Half-life binary '$HL' not found, exiting"
        quit 1
    elif test ! -x "$HL"; then
        # Could try chmod but dont know what we will be
        # chmoding so just fail.
        echo "Half-life binary '$HL' not executable, exiting"
        quit 1
    fi

    # Setup debugging
    if test "$DEBUG" -eq 1; then
        #turn on core dumps :) (if possible)
        echo "Enabling debug mode"
        if test "`ulimit -c`" -eq 0; then
            ulimit -c 2000
        fi
        GDB_TEST=`$GDB -v`
        if test -z "$GDB_TEST"; then
            echo "Please install gdb first."
            echo "goto http://www.gnu.org/software/gdb/ "
            DEBUG=0 # turn off debugging cause gdb isn't installed
        fi
    fi

    PID_IN_PARAMS="`echo $PARAMS | grep -e -pidfile`"

    if test -z "$PID_IN_PARAMS" && test -n "$PID_FILE"; then
        HL_CMD="$HL $PARAMS -pidfile $PID_FILE"
    else
        HL_CMD="$HL $PARAMS"
    fi
}

syntax () {
    # Prints script syntax

    echo "Syntax:"
    echo "$0 [-game <game>] [-debug] [-norestart] [-pidfile]"
    echo "    [-binary [hlds_i486|hlds_i686|hlds_amd]"
    echo "    [-timeout <number>] [-gdb <gdb>] [-autoupdate]"
    echo "    [-steamerr] [-ignoresigint] [-beta <version>]"
    echo "  [-debuglog <logname>]"
    echo "Params:"
    echo "-game <game>            Specifies the <game> to run."
    echo "-debug                  Run debugging on failed servers if possible."
    echo "-debuglog <logname>    Log debug output to this file."
    echo "-norestart              Don't attempt to restart failed servers."
    echo "-pidfile <pidfile>      Use the specified <pidfile> to store the server pid."
    echo "-binary <binary>        Use the specified binary ( no auto detection )."
    echo "-timeout <number>       Sleep for <number> seconds before restarting"
    echo "            a failed server."
    echo "-gdb <gdb>              Use <dbg> as the debugger of failed servers."
    echo "-steamerr               Quit on steam update failure."
    echo "-beta <version>        Make use of a beta version of this server from Steam"
    echo "-ignoresigint           Ignore signal INT ( prevents CTRL+C quitting"
    echo "            the script )."
    echo "-notrap                 Don't use trap. This prevents automatic"
    echo "            removal of old lock files."
    echo ""
    echo "Note: All parameters specified as passed through to the server"
    echo "including any not listed."
}

debugcore () {
    # Debugs any core file if DEBUG is set and
    # the exitcode is none 0

    exitcode=$1

    if test $exitcode -ne 0; then
        if test -n "$DEBUG"; then
            echo "bt" > debug.cmds;
            echo "info locals" >> debug.cmds;
            echo "info sharedlibrary" >> debug.cmds
            echo "info frame" >> debug.cmds;  # works, but gives an error... must be last
            echo "----------------------------------------------" >> $DEBUG_LOG
            echo "CRASH: `date`" >> $DEBUG_LOG
            echo "Start Line: $HL_CMD" >> $DEBUG_LOG

            # check to see if a core was dumped
            if test -f core; then
                CORE="core"
            elif test -f core.`cat $PID_FILE`; then
                CORE=core.`cat $PID_FILE`
            elif test -f "$HL.core"; then
                CORE="$HL.core"
            fi
            
            if test -n "$CORE"; then
                $GDB $HL $CORE -x debug.cmds -batch >> $DEBUG_LOG
            fi
        
            echo "End of crash report" >> $DEBUG_LOG
            echo "----------------------------------------------" >> $DEBUG_LOG
            echo $CRASH_DEBUG_MSG
            rm debug.cmds
        else
            echo "Add \"-debug\" to the $0 command line to generate a debug.log to help with solving this problem"
        fi
    fi
}

detectcpu() {
    # Attempts to auto detect the CPU
    echo "Auto detecting CPU"

    if test "FreeBSD" = `uname`; then
        PROC="/usr/compat/linux/proc"
    else
        PROC="/proc"
    fi

    if test -e $PROC/cpuinfo; then
        CPU_VERSION="`grep "cpu family" $PROC/cpuinfo | cut -f2 -d":" | tr -d " " | uniq`";
        if test $CPU_VERSION -lt 4; then
            echo "Error: hlds_l REQUIRES a 486 CPU or better";
            quit 1
        elif test $CPU_VERSION -ge 15; then
            # Core 2 or greater
            echo "Using AMD Optimised binary."
            HL=./hlds_amd
        elif test $CPU_VERSION -ge 6; then
            AMD="`grep AMD $PROC/cpuinfo`";
            if test -n "$AMD"; then
                echo "Using AMD Optimised binary."
                HL=./hlds_amd
            else
                echo "Using Pentium II Optimised binary."

                # there is a CPU manufactured by VIA that
                # doesn't support some PII instructions...
                # detect this.
                VIACHIP=`grep CentaurHauls $PROC/cpuinfo`
            
                if test -z "$VIACHIP"; then
                    HL=./hlds_i686
                fi
            fi        
        else
            echo "Using default binary."
        fi
    elif test "FreeBSD" = `uname`; then
        CPU="`grep 'CPU:' /var/run/dmesg.boot`"
        AMD="`echo $CPU |grep AMD`"
        K8="`echo $CPU |grep K8`"
        I686="`echo $CPU |grep 686`"
        if test -n "$AMD"; then
            echo "Using AMD Optimised binary."
            HL=./hlds_amd
        elif test -n "$K8"; then
            echo "Using AMD Optimised binary."
            HL=./hlds_amd
        elif test -n "$I686"; then
            echo "Using Pentium II Optimised binary."
            HL=./hlds_i686
        else
            echo "Using default binary."
        fi
    else
        echo "Using default binary."
    fi
}

update() {
    updatesingle
}

updatesingle() {
    # Run the steam update
    # exits on failure if STEAMERR is set

    if test -n "$AUTO_UPDATE"; then
        if test -f "$STEAM"; then
            echo "Updating server using Steam."
            CMD="$STEAM -command update -game $GAME -dir .";
            if  test -n "$BETA_VERSION"; then
              CMD="$CMD -beta $BETA_VERSION";
            fi

            $CMD
            if test $? -ne 0; then
                if test -n "$STEAMERR"; then
                    echo "`date`: Steam Update failed, exiting."
                    quit 1
                else
                    echo "`date`: Steam Update failed, ignoring."
                    return 0
                fi
            fi
        else
            if test -n "$STEAMERR"; then
                echo "Could not locate steam binary:$STEAM, exiting.";
                quit 1
            else
                echo "Could not locate steam binary:$STEAM, ignoring.";
                return 0
            fi
        fi
    fi

    return 1
}
    
run() {
    # Runs the steam update and server
    # Loops if RESTART is set
    # Debugs if server failure is detected
    # Note: if RESTART is not set then
    # 1. DEBUG is set then the server is NOT exec'd
    # 2. DEBUG is not set the the server is exec'd

    if test -n "$RESTART"; then
        echo "Auto-restarting the server on crash"

        #loop forever
        while true
        do
            # Update if needed
            update

            # Run the server
            $HL_CMD
            retval=$?
            if test $retval -eq 0 && test -z "$AUTO_UPDATE"; then
                break; # if 0 is returned then just quit
            fi

            debugcore $retval

            echo "`date`: Server restart in $TIMEOUT seconds"

            # don't thrash the hard disk if the server dies, wait a little
            sleep $TIMEOUT
        done # while true
    else
        # Update if needed
        update

        # Run the server
        if test "$DEBUG" -eq 0; then
            # debug not requested we can exec
            exec $HL_CMD
        else
            # debug requested we can't exec
            $HL_CMD
            debugcore $?
        fi
    fi
}

quit() {
    # Exits with the give error code, 1
    # if none specified.
    # exit code 2 also prints syntax
    exitcode="$1"

    # default to failure
    if test -z "$exitcode"; then
        exitcode=1
    fi

    case "$exitcode" in
    0)
        echo "`date`: Server Quit";;
    2)
        syntax;;
    *)
        echo "`date`: Server Failed";;
    esac

    # Remove pid file
    if test -n "$PID_FILE" && test -f "$PID_FILE"; then
        # The specified pid file
        rm -f $PID_FILE
    fi

    # reset SIGINT and then kill ourselves properly
    trap - 2
    kill -2 $$
}

# Initialise
init $*

# Run
run

# Quit normally
quit 0

если можете скиньте отредактированный файл запуска hlds_i686_class1

Буду благодарен

Отредактировал: viper3000, - 27.9.2012, 0:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 27.9.2012, 7:14
Сообщение #64


Стаж: 6 лет

Сообщений: 251
Благодарностей: 32
Полезность: 117

viper3000, что значит, не получается отредактировать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя y4eHuK
сообщение 27.9.2012, 9:35
Сообщение #65


Стаж: 6 лет 1 месяц

Сообщений: 265
Благодарностей: 61
Полезность: 187

Predator.Cat,
Ну нуту там переменной hlds_i686 она там написанна по другому и не могу понять как отредактировать она подписана "hlds.$$.pid" и не пойму как и где её менять
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Predator.Cat
сообщение 27.9.2012, 10:18
Сообщение #66


Стаж: 6 лет

Сообщений: 251
Благодарностей: 32
Полезность: 117

viper3000, если сервер один, могу предложить вот такой скрипт.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя y4eHuK
сообщение 27.9.2012, 10:33
Сообщение #67


Стаж: 6 лет 1 месяц

Сообщений: 265
Благодарностей: 61
Полезность: 187

Predator.Cat,
в том то и проблема, на данный момент сервер 1,но в планах запустить еще 1 сервер.
Еслиб только 1 сервер был бы яб сделал уже.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
4 страниц V  « 3 4
 
Тема закрытаНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: