Скрипт запуска |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Скрипт запуска |
Vitalijkee |
9.2.2020, 1:12
Сообщение
|
|
Подскажите пожалуйста в какую сторону копать.Есть скрипт запуска сервера хотелось бы добавить туда привязку по ядру как реализовать ?
СКРИПТ #/usr/bin/bash TITLE='' LONGNAME='' NAME='111111' DAEMON='hlds_run' UPDATER='/usr/hlds' STEAM='/home/111' # Доманяя директория сервера. USER='root' # Пользователь под которым будет запускатся сервер # Game options IP='192.168.0.101' # IP Сервера PORT='27015' # Порт сервера MAP='de_dust2_2x2' # Стартовая карта GAME='cstrike' # Мод (cstrike) SIZE='32' # Кол. игроков HIGHPRIORITY=-20 #Приоритет, поставьте -20 для высокого приоритета ,в таком случае, сервер нужно запускать от root. 1 станрадтный приоритет. VAC='-secure' # VAC античит. TICRATE='-sys_ticrate 1500' # FPS сервера. PINGBOOST='-pingboost 3' #Нагрузка на сервер. DEBUG='-debug' #Автоподнятие сервера при его падении. LOG='-condebug' # Ниже ничего не менять! OPTS="-game $GAME $VAC $DEBUG $LOG +port $PORT +maxplayers $SIZE +sv_lan 0 +map $MAP $TICRATE $PINGBOOST +ip $IP -pidfile $STEAM/$GAME/$NAME.pid" # Screen CURRENT_USER=$(/usr/bin/whoami) if [ "$CURRENT_USER" = "$USER" ]; then INTERFACE="/usr/bin/screen -A -m -d -S $NAME" else INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $NAME " fi service_start() { # Проверка pid файла if [ -f $STEAM/$GAME/$NAME.pid ] || [ -f $STEAM/$GAME/$NAME-screen.pid ]; then # Если pid существует, проверяем запущен ли сервер. if [ "$(ps -p `cat $STEAM/$GAME/$NAME.pid` | wc -l)" -gt 1 ]; then # Процесс запущен. echo -e "<span style=\"color:#00DB3B\"><b> <b>$TITLE</b>Включён.</b></span>" #exit 1 else # Если процесс остановлен, удаляем pid. if [ "$(ps -p `cat $STEAM/$GAME/$NAME.pid` | wc -l)" -gt 1 ]; then # Screen еще жив. # Получение ID процесса с pid-файла kill -9 `cat $STEAM/$GAME/$NAME-screen.pid` echo "Killing process ID $id" echo "Удаление <b>$TITLE</b> screen pid file" rm -rf $STEAM/$GAME/$NAME-screen.pid break fi if [ -f $STEAM/$GAME/$NAME-screen.pid ]; then rm -rf $STEAM/$GAME/$NAME-screen.pid fi # Удаление pid-файла сервера rm -rf $STEAM/$GAME/$NAME.pid # Wipe всех старых скринов. screen -wipe 1> /dev/null 2> /dev/null service_start fi else # Сервер не запущен, стартуем. if [ -x $STEAM/$DAEMON ]; then cd $STEAM $INTERFACE $STEAM/$DAEMON $OPTS sleep 1 ps -ef | grep SCREEN | grep "$NAME" | grep -v grep | awk '{ print $2}' > $STEAM/$GAME/$NAME-screen.pid echo "<span style=\"color:#00DB3B\"><b> <b>$TITLE</b>Сервер успешно запущен.</b></span>" chmod 666 $STEAM/$GAME/*.pid #1> /dev/null 2> /dev/null chown $USER $STEAM/$GAME/*.pid #1> /dev/null 2> /dev/null sleep 2 if [ $HIGHPRIORITY = 1 ]; then renice -20 `cat $STEAM/$GAME/$NAME.pid` >/dev/null 2>&1 fi fi fi } service_stop() { if [ -f $STEAM/$GAME/$NAME.pid ] || [ -f $STEAM/$GAME/$NAME-screen.pid ]; then for id in `cat $STEAM/$GAME/$NAME-screen.pid` do kill -9 $id rm -rf $STEAM/$GAME/$NAME-screen.pid break done # Remove server pid file rm -rf $STEAM/$GAME/$NAME.pid # Wipe all old screen sessions screen -wipe 1> /dev/null 2> /dev/null echo "<span style=\"color:#E81123\"><b>Сервер успешно остановлен.</b></span>" else echo -e "<span style=\"color:#E81123\"><b>Выключен.</b></span>" #exit 1 fi } service_update() { echo "Stopping and Clearing all Service files." service_stop sleep 2 service_clear sleep 2 echo "Updating Steam Updater" cd $UPDATER ./steam 1> /dev/null 2> /dev/null echo "Updating Game Files" ./steam -command update -game $GAME -dir . 1> /dev/null 2> /dev/null sleep 2 service_start } case "$1" in 'start') service_start ;; 'stop') service_stop ;; 'restart') service_stop sleep 1 service_start ;; 'update') service_update ;; *) echo "Usage $0 start|stop|restart" esac |
|
|
adva |
9.2.2020, 1:50
Сообщение
|
|
|
|
|
Vitalijkee |
9.2.2020, 2:02
Сообщение
|
|
|
|
|
Gecko |
9.2.2020, 10:53
Сообщение
|
Vitalijkee,
у тебя конечно скрипт аГонь Держи: 27015.sh Код #!/bin/bash HLDS_PATH=/home/user_name/hlds/27015 # путь к корню папки сервера где лежит файл hlds_run IP=192.168.0.1 PORT=27015 SCR_NAME=CS1 # Имя скрина MAP=de_dust2 start() { cd $HLDS_PATH && screen -A -m -d -S $SCR_NAME taskset -c 0-2 ./hlds_run -pingboost 1 -game cstrike -master +ip $IP +port $PORT -noipx +maxplayers 32 +map $MAP } stop() { PID=`ps fax | grep $SCR_NAME | grep SCREEN | awk '{ print $1 }'` kill $PID } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit 0 Ядра считаем от нуля В данном примере распределяем на 2 ядра (на 0 и на 1) Код taskset -c 0-2 В данном примере вешаем на второе ядро Код taskset -c 1 В данном примере вешаем на третье ядро Код taskset -c 2
Отредактировал: Gecko, - 13.3.2024, 23:52
Не отвечаю на ЛС.
|
|
|
|