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

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

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

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

История благодарностей участнику s88s ::: Спасибо сказали: 2
Дата поста: В теме: За сообщение: Спасибо сказали:
28.12.2016, 1:29 Как запускать сервера CS1.6 в виде сервисов linux
Я решил поднять тему по вопросу запуска сервера CS 1.6 и так сказать не много внести изменения в конструкцию ... не знаю сделал я правильно или нет решать Вам

За основу я взял скрипт вот ОТСЮДА что бы туда сюда не бегать выложу оригинал скрипта.

Все пояснения по этому скрипту Вы найдете перейдя по ссылке выше

Код
#!/bin/bash
# Copyright (c) 2007 Omega Sector.  All rights reserved.
#
# Author: Stanislav Batnikov <Sobig@omega-sector.kz>
#
# /etc/init.d/omega-online-nosteam-pub-1
#
#
### BEGIN INIT INFO
# Provides: omega-online-nosteam-pub-1
# Description: Counter-Strike 1.6 NoSteam linux dedicated server starting service
### END INIT INFO
RETVAL=0

path="/srv/games/nosteam/pub"

start() {
if [ -d $path ]; then
cd $path
./hlds_run_pub1 +sv_lan 1 -debug -insecure -game cstrike -nomaster +maxplayers 24 +port 27001 +ip 10.10.27.10 +exec pub1.cfg +map de_dust2 -pingbooster 1 -pidfile pub1.pid&
touch ./pub1.run
fi
}

stop() {
if [ -f $path/pub1.run ]; then
killall hlds_run_pub1
killall hlds_i686_pub1
cd $path
rm -R pub1.pid
rm -R ./pub1.run
fi
}

status() {
cd $path;
[ -f $path/pub1.pid ]
}
. /etc/rc.status
rc_reset
case "$1" in
  start)
        start
        rc_status -v
;;
  stop)
        stop
    rc_status -v
;;
  status)
        status
    rc_status -v
;;
  restart)
        stop
    start
    rc_status -v
;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac
rc_exit
exit $RETVAL


и из оригинального скрипта я удалил строчки:
. /etc/rc.status
rc_reset
rc_status -v
rc_exit

Эти строчки я удалил так как во первых в консоле мне выдавало ошибку о том что нет этих файлов и во вторых я так понимаю что они отвечают за статистику работы сервера ... что мне тоже не надо я зайду в панель управления и там все увижу работает сервак или же нет.

А да чуть не забыл заменил еще пару строк первая строка запуска

Код
./hlds_run_pub1 +sv_lan 1 -debug -insecure -game cstrike -nomaster +maxplayers 24 +port 27001 +ip 10.10.27.10 +exec pub1.cfg +map de_dust2 -pingbooster 1 -pidfile pub1.pid&


привел ее к такому виду

Код
./hlds_run -game cstrike +ip 0.0.0.0 +port 27015 +sv_lan 0 +maxplayers 10 +map de_dust2 -pingbooster 1 -pidfile pub1.pid > /dev/null 2>&1 &

Надеюсь что в строке запуска не чего лишнего не указал

и вторая строка которую я заменил

Код
killall hlds_i686_pub1


я ее привел к такому виду

Код
killall hlds_linux


так как файла hlds_i686 у меня нет за место него hlds_linux.
Сразу оговорюсь у меня запускается пока что один сервак под него я и делал этот скрипт и привел его к такому виду

Код
#!/bin/bash
# Copyright (c) 2007 Omega Sector.  All rights reserved.
#
# Author: Stanislav Batnikov <Sobig@omega-sector.kz>
#
# /etc/init.d/omega-online-nosteam-pub-1
#
#
### BEGIN INIT INFO
# Provides: omega-online-nosteam-pub-1
# Description: Counter-Strike 1.6 NoSteam linux dedicated server starting service
### END INIT INFO
RETVAL=0

path="/srv/games/nosteam/pub"

start() {
if [ -d $path ]; then
cd $path
./hlds_run -game cstrike +ip 0.0.0.0 +port 27015 +sv_lan 0 +maxplayers 10 +map de_dust2 -pingbooster 1 -pidfile pub1.pid > /dev/null 2>&1 &
touch ./pub1.run
fi
}

stop() {
if [ -f $path/pub1.run ]; then
killall hlds_run
killall hlds_linux
cd $path
rm -R pub1.pid
rm -R ./pub1.run
fi
}

status() {
cd $path;
[ -f $path/pub1.pid ]
}

case "$1" in
  start)
        start

;;
  stop)
        stop

;;
  status)
        status

;;
  restart)
        stop
    start

;;
  *)
        echo $"Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit $RETVAL


Файл с измененным скриптоп я положил в домашнею директорию и выполнил следующее в консоле :
1. Делаем файл исполняемым

Код
chmod +x ./pub1


2. Копируем в хранилище сервисных скриптов

Код
cp ./pub1 /etc/init.d


3. Делаем прописку в каталогах уровней запуска:

Код
update-rc.d pub1 defaults


Цитата
Полный путь давать не надо, только имя в /etc/init.d/


Что бы сделать выписку из каталога запука (удаления всех симлинков на этот скрипт из всех каталогов уровней запуска) делаем

Код
update-rc.d -f pub1 remove


Цитата
Исходный скрипт /etc/init.d/pub1 при этом не удаляется..


и командой mc я не пользовался

Так вот я подумал если сервер можно запустить с помощью service команды почему бы ей не воспользоваться на с Веб панели и так же не прикрутить к использованию три кнопки с разными командами

И так первый делом нам надо установить SSH2 открыть все поты если надо и тд.
После того как убедились что SSH2 стоит создаем простой php скрипт с проверкой подключения к SSH

Так и назовем этот файл ssh.php ( название роли не играет главное расширение что бы было .php ) с таким содержимым

Код
<?
$connection=ssh2_connect('1.1.1.1', 22);

if (ssh2_auth_password($connection, 'admin', 'password')) {
  echo "Аутентификация выполнена!\n";
} else {
  die('Ошибка аутентификации');
}
?>


где 1.1.1.1 - это Ваш IP которому надо подключится
22 - это порт SSH подключения по умолчанию он 22 и его не меняем
admin - это к какому пользователю Вы подключаетесь
password - это пароль пользователя которому Вы подключаетесь

далее если все правильно сделали то перейдя по ссылке http://Ваш_адрес/ssh.php Вы должны увидеть

Код
Аутентификация выполнена!


И для завершения всего приводим наш код к такому виду

Код
<?php
header('Content-Type: text/html; charset=utf-8');
$connection=ssh2_connect('1.1.1.1', 22);

if (ssh2_auth_password($connection, 'admin', 'password')) {
  echo "Аутентификация выполнена!\n";

if(isset($_POST["submit_start"])) {
$stream = ssh2_exec($connection, 'service pub1 start');  
  } else if(isset($_POST["submit_stop"])) {
$stream = ssh2_exec($connection, 'service pub1 stop');  
  } else if(isset($_POST["submit_restart"])) {
$stream = ssh2_exec($connection, 'service pub1 restart');  
  }
} else {
  die('Ошибка аутентификации');
}
?>

<form action="" method="POST">

<input type="submit" name="submit_start" value="Старт сервера">
<input type="submit" name="submit_stop" value="Стоп сервера">
<input type="submit" name="submit_restart" value="Рестарт сервера">

</form>


И о чудо все работает ... включается выключается и делает даже рестарт =)

Надеюсь может кому пригодится.
kat5566