HLDS init script?

Dieses Thema im Forum "Debian/Ubuntu/Knoppix" wurde erstellt von the-loader, 09.03.2008.

  1. #1 the-loader, 09.03.2008
    the-loader

    the-loader Jungspund

    Dabei seit:
    11.06.2006
    Beiträge:
    21
    Zustimmungen:
    0
    Hallo,
    ich möchte meinen HLDS unter Debian in durch ein init script starten...
    das klappt auch schon relativ gut nur leider haut es mit den autostart nicht so wirklich hin.

    der server läst sich erfolgreich über:
    PHP:
    sudo /etc/init.d/hlds start
    starten.

    nun habe ich mittels:
    PHP:
    ln -/etc/init.d/hlds S20HLDS
    eine symbolische verküpfung im verzeichnis "/etc/rc3.d/" erstellt leider startet das system den hlds nicht mit

    S20HLDS das init script hlds und hlds_run sind ausführbar

    das init script:

    PHP:
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          hlds
    # Required-Start:    $local_fs $network
    # Required-Stop:     $local_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: HL Server
    # Description:       CS Game-Server
    ### END INIT INFO
    #
    # Start the Counter-Strike dedicated server.
    #
    # AUTHORS :
    #
    # Julien Escario ( pandemik@azilog.net )
    # &
    # Cedric Rochat ( crochat@younics.org )
    # &
    # Cmdr._Firewalker ( cmdr._firewalker@web.de )
    #
    # ===========================================
    #
    # What you need:
    #
    # Linux :)
    # awk
    # screen
    # the hlds_l & cstrike files (obtainable via steam)
    #
    # How to use:
    #
    # Edit the CS_USER-Var to the user running your cs-servers
    # Edit the DIR-Var to fit your system (just contains the path to the dir that contains hlds_run)
    # Edit the PARAMS-Var to fit your needs
    # - standard is startup as internet server
    # if you use multiple scripts on one system you should change the NAME-var (otherwise  
    #   all will be stopped if you run the script with "stop", and status will be useless)
    #
    # When this is done, copy the file to /etc/rc.d/init.d (or whereever your system stores the
    # scripts for starting the services) and set the execute permission.
    # Now you can link the script to your runlevel-dir, here's an example for runlevel 3:
    # ln -s /etc/rc.d/init.d/hlds /etc/rc.d/rc3.d/S90hlds
    # ln -s /etc/rc.d/init.d/hlds /etc/rc.d/rc3.d/K50hlds
    # or use update-rc.d if you got a system using that tool (like Debian, see manpage)
    #
    # Or use it manually like:
    # ./hlds start
    # ./hlds stop
    #
    # To see the server-console start the script with the parameter "watch".
    #
    # DOC by jwm (jwm@counter-strike.de)

    # !!!!!!!!!!!!!! CHANGE THIS TO THE USER YOU USE FOR YOUR SERVER !!!!!!!!!!!!!!!
    CS_USER=hlds

    PATH
    =/bin:/usr/bin:/sbin:/usr/sbin

    # # DON'T FORGET TO CHANGE THE PATH TO YOUR NEEDS!
    DIR=/home/hlds

    DAEMON
    =hlds_run

    # LAN server:
    # PARAMS="-game cstrike -nomaster -insecure +sv_lan 1 +maxplayers 16 +map de_dust"
    # Internet server:
    PARAMS="-game cstrike +ip 192.168.1.20 +maxplayers 12 +map de_dust2 -autoupdate -noipx +pingboost 3 -tos"

    NAME=csserver
    DESC
    ="CS dedicated server"

    # No edits (should be) necessary beyond this line

    if [ ! -`which awk` ]; then echo "You need awk for this script"; exit 1fi
    if [ ! -`which screen` ]; then echo "You need screen (the program, moron!) for this script"; exit 1fi

    if [ `whoami` = root ]
    then
     usagetype
    =root
    else
     
    usagetype=nonroot
    fi

    start
    () {
       if [ ! -
    d $DIR ]; then echo " ... No such directory: $DIR!";  exit 1fi
       
    if [ ! -x $DIR/$DAEMON ]; then echo "$DIR/$DAEMON does not exist or is not executable!"; exit 1fi
       
    if statusthen echo " ... $DESC$NAME is already running!"; exit 1fi

       
    case "$usagetypein
       root
    )
        
    su $CS_USER -"cd $DIR ; screen -AmdS $NAME ./$DAEMON $PARAMS"
       
    ;;
       
    nonroot)
        
    cd $DIR screen -AmdS $NAME ./$DAEMON $PARAMS
       
    ;;
       
    esac

    }

    stop () {
       if ! 
    statusthen echo " ... $DESC $NAME could not be found. Probably not running."; exit 1fi

       
    case "$usagetypein
       root
    )
        
    tmp=$(su $CS_USER -"screen -ls" awk -"\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" awk '{print $1}')
        
    su $CS_USER -"screen -r $tmp -X quit"
       
    ;;
       
    nonroot)
        
    screen -$(screen -ls awk -"\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" awk '{print $1}') -X quit
       
    ;;
       
    esac
    }

    status () {
       case 
    "$usagetypein
       root
    )
        
    su $CS_USER -"screen -ls" grep [.]$NAME[[:space:]] > /dev/null
       
    ;;
       
    nonroot)
        
    screen -ls grep [.]$NAME[[:space:]] > /dev/null
       
    ;;
       
    esac
    }

    watch () {
       if ! 
    statusthen echo "$DESC $NAME could not be found. Probably not running."; exit 1fi

       
    case "$usagetypein
       root
    )
        
    tmp=$(su $CS_USER -"screen -ls" awk -"\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" awk '{print $1}')
        
    su $CS_USER -"screen -r $tmp"
       
    ;;
       
    nonroot)
        
    screen -$(screen -ls awk -"\$2 ~ /^$NAME[[:space:]].*/ {print \$1}" awk '{print $1}')
       ;;
       
    esac
    }

    case 
    "$1" in
     start
    )
      echo 
    "Starting $DESC$NAME"
      
    start
      
    echo " ... done."
     
    ;;

     
    stop)
      echo 
    "Stopping $DESC$NAME"
      
    stop
      
    echo " ... done."
     
    ;;

     
    restart)
      echo 
    "Restarting $DESC$NAME"
      
    status && stop
      start
      
    echo " ... done."
     
    ;;

     
    status)
      if 
    status
      then 
    echo "$DESC$NAME is UP" 
      
    else echo "$DESC$NAME is DOWN"
      
    fi
     
    ;;
     
    watch)
      
    watch
     
    ;;

     *)
       echo 
    "Usage: $0 {start|stop|status|restart|watch}\nWhile watching press ctrl-a, ctrl-d to stop watching without stopping the server."
       
    exit 1
       
    ;;

    esac


    exit 0
    ich danke schon mal für die hilfe
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

HLDS init script?

Die Seite wird geladen...

HLDS init script? - Ähnliche Themen

  1. Problem mit HLDS installation

    Problem mit HLDS installation: Ich habe zurzeit ein dickes Problem mit der installation von HLDS unter Debian 4.0 64bit. Jedes mal wenn ich ./hldsupdatetool.bin eingebe...
  2. Problem mit hldsupdatetool

    Problem mit hldsupdatetool: Hi, ich habe Debian und ich will einen CS:S Server aufmachen doch wenn ich srcds_run starte kommt diese Meldungen Auto detecting CPU Using...
  3. Startscript @ HLDS

    Startscript @ HLDS: Hi, ich hab probleme mit dem startscript. Der sagt mir ich habe ein ' oder `` vergessen, aber ich finde nix #!/bin/sh # NAME=EoS'S Server...
  4. Open Container Initiative arbeitet an Spezifikation für das Format von Container-Images

    Open Container Initiative arbeitet an Spezifikation für das Format von Container-Images: Die Open Container Initiative (OCI) arbeitet an Spezifikationen für Standards rund um das Thema Container. Das neueste Projekt dreht sich um eine...
  5. Linux Foundation weitet Initiativen aus

    Linux Foundation weitet Initiativen aus: Die Linux Foundation verkündet in einer Serie von Mitteilungen den Beitritt der TODO-Initiative und weiterer Mitglieder. Das im Dezember...