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

★Сириус★

Участник
Сообщения
743
Реакции
197
Подскажите, как можно выключить сервер CSS по расписанию, тоесть команду cron.
По включению то понятно, просто задать время выполнения cron на файл server.sh
А вот как выключить?
Хочу просто сделать чтобы сервер работал в определенное время, сам включался и выключался
 

_Lexa_

Участник
Сообщения
846
Реакции
260
kill `ps -ef | awk '! /awk/ && /имя_скрина/ {print $2}'`
 

Konstantin

Участник
Сообщения
1,775
Реакции
759
Оффтоп
 

_Lexa_

Участник
Сообщения
846
Реакции
260
Если нужен просто перезапуск, то в стартовый файл пропиши эту строку
Или как у меня
PHP:
#! /bin/sh
echo "Starting Cs:Source Server"
sleep 1
kill  `ps -ef | awk '! /awk/ && /classic/ {print $2}'`;
sleep 2
screen -A -m -d -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"
 

★Сириус★

Участник
Сообщения
743
Реакции
197
не. нужен не перезапуска, а выключение, чтобы убивал запущеный процесс
 

KorDen

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

Оффтоп
 

tiger_by

Гл. Админ SourceGames.RU
Сообщения
631
Реакции
278
Мой древнеримский скрипт по запуску, остановке и перезапуску серваков tf2 ...

PHP:
#! /bin/bash

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

if [ $1 -eq 1 ] || [ $1 -eq 2 ] || [ $1 -eq 3 ] || [ $1 -eq 4 ] || [ $1 -eq 5 ] || [ $1 -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 + $1 ))
        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/null; then
                echo "server $1 already running!"; exit 2; else
                echo -ne "Starting server $1..."; screen -A -m -d -S server$1 $path$run -port $port +map $map&& echo -ne " \t[ok]\n"
        fi

;;

"stop" )
        echo -ne "Stoping server $1... "; kill -9 `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 -9 `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/null; then
                echo "server $1 already running!"; exit 2; else
                echo -ne "Starting server $1..."; screen -A -m -d -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 утра

Под контру надо переделать некоторые моменты, но это пустяк.
 

Vetaldx dx

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

помогите :sad:
 

BMW M6

Участник
Сообщения
1,217
Реакции
534
А можно по подробнее расказать как сделать, а то выше почитал практически ничего не понял.
Пробывал с 4 поста делать и из 6 поста
так у меня сервера каждые 20 мин перезапускались, толи я в кроне время не так выставил, то в start.sh не так прописал...

помогите :sad:

http://ru.wikipedia.org/wiki/Cron

Я редко редактирую крон, но всегда в википедии пользуюсь вот этим:
C-подобный:
* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)

Опиши, то, что ты хочешь получить в результате то?
 

Vetaldx dx

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

Оффтоп

как я понял должно выглядить так start.sh?

PHP:
#!/bin/sh/
echo "Starting CS:Source Server (Public)"
/usr/local/bin/screen -S css-cw-srv -X -p0 stuff 'exit'`echo -ne '\015'`
sleep 1
kill -9 $(ps ax | grep "port 27015" | grep -v grep | awk '{print $1}') 
kill -9 $(ps ax | grep public | grep -v grep | awk '{print $1}')
/usr/local/bin/screen -wipe
sleep 3
taskset -c 0 screen -A -m -d -S public ./srcds_run -console -game cstrike -port 27015 -tickrate 66 +maxplayers 32 +map de_dust2 +sv_lan 0
echo "Finish CS:Source Server (Public)"

если не так, то напиши пожалуйста как должен выглядить стартник...:(
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Vetaldx dx, а зачем его убивать перед запуском? Это уже прямо restart.sh
И да, у тебя для закрытия ищется скрин css-cw-srv а убивается public
 

Vetaldx dx

Участник
Сообщения
341
Реакции
28
Ну я от и хочу что бы у меня сервера раз у день перезапускались,
Как мне сделать?
 

Evkval

Участник
Сообщения
42
Реакции
3
удалено
 
Последнее редактирование:

Vetaldx dx

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

★Сириус★

Участник
Сообщения
743
Реакции
197
Ну я от и хочу что бы у меня сервера раз у день перезапускались,
Как мне сделать?
где это писалось уже, я использую перезапуск так (через cron):
C-подобный:
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

Участник
Сообщения
341
Реакции
28
где это писалось уже, я использую перезапуск так (через cron):
C-подобный:
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 - сам файл, запускающий сервер

Попробую
 
Сверху Снизу