Как включать и выключать сервер CS:S по расписанию

Тема в разделе "Linux", создана пользователем ★Сириус★, 27 дек 2012.

  1. ★Сириус★

    ★Сириус★

    Сообщения:
    748
    Симпатии:
    199
    Подскажите, как можно выключить сервер CSS по расписанию, тоесть команду cron.
    По включению то понятно, просто задать время выполнения cron на файл server.sh
    А вот как выключить?
    Хочу просто сделать чтобы сервер работал в определенное время, сам включался и выключался
     
  2. _Lexa_

    _Lexa_

    Сообщения:
    847
    Симпатии:
    259
    kill `ps -ef | awk '! /awk/ && /имя_скрина/ {print $2}'`
     
  3. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
    Оффтоп
     
    radionucleid, KorDen и ★Сириус★ нравится это.
  4. _Lexa_

    _Lexa_

    Сообщения:
    847
    Симпатии:
    259
    Если нужен просто перезапуск, то в стартовый файл пропиши эту строку
    Или как у меня
    PHP:
    #! /bin/sh
    echo "Starting Cs:Source Server"
    sleep 1
    kill  
    `ps -ef | awk '! /awk/ && /classic/ {print $2}'`;
    sleep 2
    screen 
    ----S classic ./srcds_run -console -game cstrike -port 27015 +map de_dust2 +sv_lan 0 +ip 0.0.0.0 +maxplayers 26
    echo "Starting OK"
     
    ★Сириус★ нравится это.
  5. ★Сириус★

    ★Сириус★

    Сообщения:
    748
    Симпатии:
    199
    не. нужен не перезапуска, а выключение, чтобы убивал запущеный процесс
     
  6. vectorserver

    vectorserver ♥♥♥♥♥ by game.cominet.ru

    Сообщения:
    201
    Симпатии:
    243
    Код:
    #!/bin/bash
    killall srcds_i686
    killall srcds_amd
    killall srcds_i486
    killall srcds_run
    killall srcds_linux
    :-D
     
    ★Сириус★ нравится это.
  7. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Ща набросаем тебе куу вариантов =)
    У меня выключение такое
    PHP:
    #!/bin/sh
    /usr/local/bin/screen -S css-cw-srv --p0 stuff 'exit'`echo -ne '\015'`
    sleep 2;
    kill -$(ps ax grep "port 27032" grep -v grep awk '{print $1}')
    kill -$(ps ax grep scr-css-cw grep -v grep awk '{print $1}')
    /
    usr/local/bin/screen -wipe
    css-cw-srv - имя скрина
    port 27032 - уникальная строчка в запуске конкретного севрера, порт обычно подходит, поэтому только изменить номер порта

    Оффтоп
     
    Oscolok и ★Сириус★ нравится это.
  8. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    Мой древнеримский скрипт по запуску, остановке и перезапуску серваков tf2 ...

    PHP:
    #! /bin/bash

    ARGS=2
    if [ $# != 2 ]; then
            
    echo "Usage: $0 {1 - 6} {start|stop|restart}"; exit 3
    fi

    if [ $-eq 1 ] || [ $-eq 2 ] || [ $-eq 3 ] || [ $-eq 4 ] || [ $-eq 5 ] || [ $-eq 6 ]; then
            port
    =27014
            path
    ="/home/tf2/server$1/"
            
    run='orangebox/srcds_run -game tf -ip 0.0.0.0 +maxplayers 32'
            
    port=$(( $port + $))
            
    map='orangebox/tf/mapcycle.txt'
            
    map=`head -n 1 $path$map`; else
            echo 
    "Usage: $0 {1 - 6} {start|stop|restart}"; exit
    fi

    # run command on server $srv

    case $2 in

    "start" )
            if 
    ps ax grep $port grep -v grep >/dev/nullthen
                    
    echo "server $1 already running!"; exit 2; else
                    echo -
    ne "Starting server $1..."screen ----S server$1 $path$run -port $port +map $map&& echo -ne " \t[ok]\n"
            
    fi

    ;;

    "stop" )
            echo -
    ne "Stoping server $1... "kill -`ps ax | grep $port | grep "srcds_run" | grep -v grep | awk '{print $1}'2>/dev/null && echo -ne "\t[ok]\n"
    screen -wipe > /dev/null
    ;;

    "restart" )
            echo -
    ne "Stoping server $1... "kill -`ps ax | grep $port | grep "srcds_run" | grep -v grep | awk '{print $1}'2>/dev/null && echo -ne "\t[ok]\n"sleep 2
            
    if ps ax grep $port grep -v grep >/dev/nullthen
                    
    echo "server $1 already running!"; exit 2; else
                    echo -
    ne "Starting server $1..."screen ----S server$1 $path$run -port $port +map $map && echo -ne " \t[ok]\n"
            
    fi

    ;;

    "*" )
            echo 
    "Usage: $0 {1 - 6} {start|stop|restart}"; exit 3
    В крон же
    PHP:
    0 0 * * *    ./css.sh 1 stop # остановить сервер 1 в полночь
    0 5 * * *    ./css.sh 1 start # запустить сервер 1 в 5 утра
    Под контру надо переделать некоторые моменты, но это пустяк.
     
    The Night Fury, ★Сириус★ и KorDen нравится это.
  9. ★Сириус★

    ★Сириус★

    Сообщения:
    748
    Симпатии:
    199
    спасибо большое всем
     
  10. Vetaldx dx

    Vetaldx dx

    Сообщения:
    341
    Симпатии:
    27
    А можно по подробнее расказать как сделать, а то выше почитал практически ничего не понял.
    Пробывал с 4 поста делать и из 6 поста
    так у меня сервера каждые 20 мин перезапускались, толи я в кроне время не так выставил, то в start.sh не так прописал...

    помогите :sad:
     
  11. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    http://ru.wikipedia.org/wiki/Cron

    Я редко редактирую крон, но всегда в википедии пользуюсь вот этим:
    Код:
    * * * * * выполняемая команда
    - - - - -
    | | | | |
    | | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
    | | | ------- Месяц (1 - 12)
    | | --------- День (1 - 31)
    | ----------- Час (0 - 23)
    ------------- Минута (0 - 59)
    Опиши, то, что ты хочешь получить в результате то?
     
  12. NWAT

    NWAT

    Сообщения:
    22
    Симпатии:
    15
    Для windows вариант есть?
     
    radionucleid нравится это.
  13. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    Поищи в интернете что-нибудь.
     
  14. Vetaldx dx

    Vetaldx dx

    Сообщения:
    341
    Симпатии:
    27
    как я понял должно выглядить так start.sh?

    PHP:
    #!/bin/sh/
    echo "Starting CS:Source Server (Public)"
    /usr/local/bin/screen -S css-cw-srv --p0 stuff 'exit'`echo -ne '\015'`
    sleep 1
    kill 
    -$(ps ax grep "port 27015" grep -v grep awk '{print $1}'
    kill -$(ps ax grep public | grep -v grep awk '{print $1}')
    /
    usr/local/bin/screen -wipe
    sleep 3
    taskset 
    -c 0 screen ----public ./srcds_run -console -game cstrike -port 27015 -tickrate 66 +maxplayers 32 +map de_dust2 +sv_lan 0
    echo "Finish CS:Source Server (Public)"
    если не так, то напиши пожалуйста как должен выглядить стартник...:(
     
  15. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Vetaldx dx, а зачем его убивать перед запуском? Это уже прямо restart.sh
    И да, у тебя для закрытия ищется скрин css-cw-srv а убивается public
     
    Vetaldx dx нравится это.
  16. Vetaldx dx

    Vetaldx dx

    Сообщения:
    341
    Симпатии:
    27
    Ну я от и хочу что бы у меня сервера раз у день перезапускались,
    Как мне сделать?
     
  17. Evkval

    Evkval

    Сообщения:
    42
    Симпатии:
    1
    удалено
     
    Последнее редактирование: 18 янв 2014
  18. Vetaldx dx

    Vetaldx dx

    Сообщения:
    341
    Симпатии:
    27
    Напишите пожалуйста скрипт, у меня 3 сервера ксс.
    Запущены через скрин, выше читал посты, половину не понял, половину попробовал так вообще все сервера выкл, а один токо ВКЛ.
     
  19. ★Сириус★

    ★Сириус★

    Сообщения:
    748
    Симпатии:
    199
    где это писалось уже, я использую перезапуск так (через cron):
    Код:
    kill `ps -ef | awk '! /awk/ && /[COLOR="DarkOrange"]css-server[/COLOR]/ {print $2}'`; cd [COLOR="DarkGreen"]/data/servers/css[/COLOR]; ./[COLOR="DarkOrchid"]start.sh[/COLOR] > /dev/null 
    где:
    css-server - имя скрина сервера
    /data/servers/css - путь к файлу запуска сервера
    start.sh - сам файл, запускающий сервер
     
    Vetaldx dx нравится это.
  20. Vetaldx dx

    Vetaldx dx

    Сообщения:
    341
    Симпатии:
    27
    Попробую