Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

HLTV Service (systemctl)

, Помогите создать линуксовый сервис (systemctl) для HLTV
Статус пользователя grisevg
сообщение 15.1.2016, 0:13
Сообщение #1
Стаж: 10 лет

Сообщений: 4
Благодарностей: 2
Полезность: 0

Помогите создать линуксовый сервис (systemctl) для HLTV

Я написал вот такой вот простенький и он работает на ура, пишет демки:
/etc/systemd/system/hltv.service

Код
[Unit]
Description=HLTV server
Requires=cs16.service
After=cs16.service

[Service]
Type=simple
User=cs16
Group=cs16
UMask=007

ExecStart=/home/cs16/server/hltv_start.sh

Restart=on-failure

# Configures the time to wait before service is stopped forcefully.
TimeoutStopSec=300

[Install]
WantedBy=multi-user.target



Только вот проблема, если сервис остановить или перезагрузить, убивается процес и текущая демка запарывается.
Я не очень секу в сервисах, можно как-то сделать чтобы systemctl слал "quit" или "stop" процесу?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя adva
сообщение 15.1.2016, 1:34
Сообщение #2


Иконка группы

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

Не проще засунуть в rc.local пусть до скрипта?
hltv_run_cron.sh
Код
#!/bin/sh
RED='\e[0;31m'
BLUE='\e[0;34m'
GRAY='\e[0;37m'
WHITE='\e[1;37m'

if [ "`screen -ls | grep hltv27015`" ]; then
echo -en "${blue} [>>]${white} hltv27015"
echo -e "\t\t${gray}[${red} ALREADY RUNNING ${gray}]"
else
screen -dmS hltv27015 taskset -c 7 ./hltv_run.sh
fi

hltv_run.sh должен находится в одной директории с этим скриптом.
Цитата
taskset -c 7
номер ядра. через htop проверь свободное ядро и напиши своё

hltv_run.sh:

Код
#!/bin/sh
LD_LIBRARY_PATH=/home/user/games/public/; export LD_LIBRARY_PATH

taskset -c 7 ./hltv +connect 192.168.0.1:27015-port 29015 +exec hltv.cfg +record ../HLTV_papka/HLTV_nazvanie_demo


Отредактировал: adva, - 15.1.2016, 1:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя grisevg
сообщение 15.1.2016, 2:04
Сообщение #3
Стаж: 10 лет

Сообщений: 4
Благодарностей: 2
Полезность: 0

adva, крон это отлично, обязательно поставлю в крон. но всеже, есть способ остановить/перезапустить фоновый hltv не запоров текущую демку? можно как-то в него послать quit?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Salpson
сообщение 15.1.2016, 17:19
Сообщение #4


Иконка группы

Стаж: 13 лет
Город: Ульяновск

Сообщений: 1214
Благодарностей: 759
Полезность: 1065

Цитата(grisevg @ 15.1.2016, 3:00) *
adva, крон это отлично, обязательно поставлю в крон. но всеже, есть способ остановить/перезапустить фоновый hltv не запоров текущую демку? можно как-то в него послать quit?

Если я правильно понял тебя, то так: screen -S hltv -X stuff "quit\015"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя samcs
сообщение 17.1.2016, 9:20
Сообщение #5
Стаж: 14 лет

Сообщений: 12
Благодарностей: 3
Полезность: 0

hltv_start.sh можно глянуть ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя samcs
сообщение 17.1.2016, 9:56
Сообщение #6
Стаж: 14 лет

Сообщений: 12
Благодарностей: 3
Полезность: 0

ExecStop=/path/hltv -X quit
соответственно адрес подставить свой.
Вроде оно.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: