Linux стартиращ скрипт за Counter-Strike сървъри

Дискусии и проблеми свързани с Linux.
Аватар
3agopka
Извън линия
Потребител
Потребител
Мнения: 68
Регистриран на: 20 Окт 2016, 21:36
Получена благодарност: 1 път

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от 3agopka » 06 Яну 2017, 16:08

Аз го имам малко по различно - но скрипта е същия.

Скрито съдържание
Форумът изисква да си влезнал в акаунта си за да можеш да четеш това.

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 06 Яну 2017, 18:23

Тва е файла който се записа сам в указаната дериктория.под името hlds.save

Код за потвърждение: Избери целия код

#!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          csservers
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start daemon at boot time
    # Description:       Enable service provided by daemon.
    ### END INIT INFO
    # This script edit by kostov[Virtual.New.BG]
    # Server options
    TITLE='CS-VARNA.BG'
    SESSION='hlds'
    DAEMON='hlds_run'
    DIR='/home/hlds'
    USER='root'

    # Game options
    IP='78.83.22.219'
    PORT='27015'
    MAP='de_dust2'
    GAME='cstrike'
    PLAYERS='32'
    TICRATE='1000'
    PINGBOOST=2'
    SVLAN='0'
    RCON=''

    # Server options string
    OPTS="-game $GAME +ip $IP +maxplayers $PLAYERS +map $MAP -port $PORT +sv_lan $SVLAN +rcon_password $RCON +sys_ticrate $TICRATE -pingboost $PINGBOOST -master  -noipx -nojoy +log off -pidfile $DIR/$GAME/$SESSION.pid"

    # Screen command
    CURRENT_USER=$(/usr/bin/whoami)
    if [ "$CURRENT_USER" = "$USER" ]; then
        INTERFACE="/usr/bin/screen -A -m -d -S $SESSION"
      else
        INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $SESSION"
    fi

    service_start() {
        if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
            if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
                echo -e "Cannot start $TITLE.  Server is already running."
            else
                if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then
                    kill -9 `cat $DIR/$GAME/$SESSION-screen.pid`
                    echo "Killing process ID $id"
                    echo "Removing $TITLE screen pid file"
                    rm -rf $DIR/$GAME/$SESSION-screen.pid
       break
                fi
       if [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
       rm -rf $DIR/$GAME/$SESSION-screen.pid
       fi
            echo "Removing $TITLE pid file"
            rm -rf $DIR/$GAME/$SESSION.pid
            screen -wipe 1> /dev/null 2> /dev/null
            service_start
            fi
        else
            if [ -x $DIR/$DAEMON ]; then
                echo "Starting $TITLE"
                cd $DIR
                $INTERFACE $DIR/$DAEMON $OPTS
                sleep 15
                ps -ef | grep SCREEN | grep "$SESSION" | grep -v grep | awk '{ print $2}' > $DIR/$GAME/$SESSION-screen.pid
                echo "$TITLE screen process ID written to $DIR/$GAME/$SESSION-screen.pid"
                echo "$TITLE server process ID written to $DIR/$GAME/$SESSION.pid"
               
                echo "$TITLE started."
                chmod 666 $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
                chown $USER $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null
                sleep 15
            fi
        fi
    }

    service_stop() {
        if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then
            echo "Stopping $TITLE"
            for id in `cat $DIR/$GAME/$SESSION-screen.pid`
                do kill -9 $id
                echo "Killing process ID $id"
                echo "Removing $TITLE screen pid file"
                rm -rf $DIR/$GAME/$SESSION-screen.pid
                break
            done
            echo "Removing $TITLE pid file"
            rm -rf $DIR/$GAME/$SESSION.pid
            screen -wipe 1> /dev/null 2> /dev/null
            echo "$TITLE stopped."
        else
            echo -e "Cannot stop $TITLE. Server is not running."
        fi   
    }


    service_watch() {
            if [ `screen -wipe | grep $SESSION | grep -v grep | awk '{ print $2 }'` == '(Attached)' ]; then
                    echo -e "Someone is already attached to the console of the server.\n Might want to check who"
            else
                    screen -r $SESSION
            fi
    }


    case "$1" in
        'start')
            service_start
            ;;
        'stop')
            service_stop
            ;;
        'restart')
            service_stop
            sleep 10
            service_start
            ;;
       'watch')
          service_watch
          ;;
        *)
            echo "Usage $0 start|stop|restart|watch"
    esac

    exit 0
root@dragomir:/home/cgozzie# sudo service cstrike-server start
Failed to start cstrike-server.service: Unit cstrike-server.service not found.
root@dragomir:/home/cgozzie#


Правя сички останали стъпки които си писал и нищо.2 дена са мъча вече са изнервих и май ще се откажа.Явно не е никак лесно сървър на линукс да се пусне но ще се помъча още малко ако не стане здраве да е...
Изображение

Аватар
3agopka
Извън линия
Потребител
Потребител
Мнения: 68
Регистриран на: 20 Окт 2016, 21:36
Получена благодарност: 1 път

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от 3agopka » 06 Яну 2017, 18:42

Стигни до указаната папка където трябва да е записан файла.Виж дали е записан.
Ако е записан успешно напиши в терминала пътя до папката и напиши след това стартиращия код

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 06 Яну 2017, 19:04

Ко ли не пробвам е няма и няма.

Код за потвърждение: Избери целия код

cgozzie@dragomir:~$ sudo su
[sudo] password for cgozzie: 
root@dragomir:/home/cgozzie# sudo /etc/init.d/hlds.save
/etc/init.d/hlds.save: 100: /etc/init.d/hlds.save: Syntax error: "(" unexpected
root@dragomir:/home/cgozzie# sudo chmod a+x /etc/init.d/hlds.save
root@dragomir:/home/cgozzie# sudo service hlds.save start
Job for hlds.save.service failed because the control process exited with error code. See "systemctl status hlds.save.service" and "journalctl -xe" for details.
root@dragomir:/home/cgozzie# sudo /etc/init.d/hlds.save
/etc/init.d/hlds.save: 100: /etc/init.d/hlds.save: Syntax error: "(" unexpected
root@dragomir:/home/cgozzie# sudo /etc/init.d/classic
Usage /etc/init.d/classic start|stop|restart|watch
root@dragomir:/home/cgozzie# sudo service classic start
root@dragomir:/home/cgozzie# sudo service classic watch
/etc/init.d/classic: 100: [: ==: unexpected operator
There is no screen to be resumed matching hlds.
root@dragomir:/home/cgozzie# sudo classic start
sudo: classic: command not found
root@dragomir:/home/cgozzie# sudo service classic start
root@dragomir:/home/cgozzie# sudo service classic watch
/etc/init.d/classic: 100: [: ==: unexpected operator
There is no screen to be resumed matching hlds.
root@dragomir:/home/cgozzie# 
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 06 Яну 2017, 19:51

Нищо не става отказвам се нямам нерви повече..
Изображение

Аватар
3agopka
Извън линия
Потребител
Потребител
Мнения: 68
Регистриран на: 20 Окт 2016, 21:36
Получена благодарност: 1 път

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от 3agopka » 06 Яну 2017, 21:10

трябва да се логнеш до колкото помня и ще стане
нещо с роот ли беше забравил съм ...
sudo su беше нещо
като цяло трябва да си гогнат
Skype ми е : demon555-666
утре мога да ти помогна след работа.Работил съм с ubuntu.Така ,че ако искаш добави ме и дано си спомня като видя терминала :D

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 09 Яну 2017, 01:09

Сложих линукс дебиан правя сичко по урока на края ми излиза това..
cgozzie@78-83-22-219:~$ su
Password:
root@78-83-22-219:/home/cgozzie# /etc/init.d/classic start
root@78-83-22-219:/home/cgozzie# su /etc/init.d/classic start
No passwd entry for user '/etc/init.d/classic'
root@78-83-22-219:/home/cgozzie# /etc/init.d/classic start
root@78-83-22-219:/home/cgozzie# apt-get install screen
Reading package lists... Done
Building dependency tree
Reading state information... Done
screen is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@78-83-22-219:/home/cgozzie# /etc/init.d/classic watch
/etc/init.d/classic: 100: [: ==: unexpected operator
There is no screen to be resumed matching hlds.
root@78-83-22-219:/home/cgozzie#

И сървъра даже не тръгва.
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 09 Яну 2017, 05:19

Съръвъра не тръгва а като искам да му отвора конзолата ми излиза това.Някой наясно ли е какво значи и как да го оправя.
root@78-83-22-219:/home/cgozzie# /etc/init.d/classic watch
/etc/init.d/classic: line 100: [: ==: unary operator expected
There is no screen to be resumed matching hlds.
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 09 Яну 2017, 14:24

Така значи сървъра го подкарах до тук добре..
Изображение

Но като вкарам командата за /etc/init.d/classic watch ми излиза това.

root@78-83-22-219:/home/cgozzie# /etc/init.d/classic start
cat: /home/cgozzie/hlds/cstrike/hlds.pid: No such file or directory
error: list of process IDs must follow -p

Usage:
ps [options]

Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.

For more details see ps(1).
cat: /home/cgozzie/hlds/cstrike/hlds.pid: No such file or directory
error: list of process IDs must follow -p

Usage:
ps [options]

Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.

For more details see ps(1).
Removing CS-VARNA.BG pid file
Starting CS-VARNA.BG
CS-VARNA.BG screen process ID written to /home/cgozzie/hlds/cstrike/hlds-screen.pid
CS-VARNA.BG server process ID written to /home/cgozzie/hlds/cstrike/hlds.pid
CS-VARNA.BG started.
root@78-83-22-219:/home/cgozzie# /etc/init.d/classic watch
/etc/init.d/classic: line 87: [: ==: unary operator expected
There is no screen to be resumed matching hlds.

Това със скрийна не ми излиза моля ви дайте някакво решение на проблема....
Изображение

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1318
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 244 пъти
Получена благодарност: 42 пъти

Re: Linux стартиращ скрипт за Counter-Strike сървъри

Мнение от cgozzie » 09 Яну 2017, 16:32

След доста търсене из разни сайтове намерих този стартиращ скрипт който работи на 100% при мен на Линукс Дебиан.За Убунту незнам как ще тръгва не съм го тествал.

Код за потвърждение: Избери целия код

#! /bin/sh

### BEGIN INIT INFO
# Provides:          cs16zombie
# Required-Start:    start
# Required-Stop:     stop
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: CS 1.6 ZM
# Description:       Counter Strike 1.6 Zombie
### END INIT INFO

# The user that will run the server
CS_USER=root

# Leave this alone.
NAME=cs16zombie

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

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

# Leave this alone.
DAEMON=hlds_run

# Internet-server:
PARAMS="-game cstrike -pingboost 2 +sv_lan 0 +ip 149.62.151.144 +port 27005 +maxplayers 18 +map zm_dust2snow_2011 +log on +mp_logecho 1 -master -noipx -secure -autoupdate &"

# Leave this alone.
DESC="Counter-Strike Zombie server"

. /lib/lsb/init-functions

server_start()
{
    log_daemon_msg "Starting $DESC: $NAME"
    if su $CS_USER -l -c "screen -ls" | grep $NAME; 
    then
       log_failure_msg "$DESC: $NAME is already running!"
       exit 1
    else 
       su $CS_USER -c "cd $DIR; screen -m -d -S $NAME ./$DAEMON $PARAMS"
       log_end_msg $?
    fi
}

server_stop()
{
    log_daemon_msg "Stopping $DESC: $NAME"
    if su $CS_USER -l -c "screen -ls" | grep $NAME; 
    then
       kill `su $CS_USER -l -c "screen -ls" | grep $NAME | awk -F . '{print $1}'|awk '{print $1}'`
       log_end_msg $?
    else
       log_failure_msg "Coulnd't find a running $DESC"
       exit 1
    fi
}

server_status()
{
    if su $CS_USER -l -c "screen -ls" | grep $NAME;
    then
        log_success_msg "$DESC: $NAME is UP"
        exit 0
    else
        log_failure_msg "$DESC: $NAME is DOWN"
        exit 1
    fi
}
case "$1" in
 start)
    server_start
    ;;
 stop)
    server_stop
    ;;
 restart)
    server_stop
    sleep 1
    server_start
    ;;
 status)
    server_status
    ;; 
 *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
    ;;
esac

exit 0
Изображение
Изображение

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Linux”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта