В догонку давненько писал свой ман, публикую.
Опишу небольшой ман (расчитано что вы знаете основы linux) на примере ubuntu-server. процесс самой установки не буду описывать ровно как и настроки сети и прочего... почему Ubuntu сервер?
да просто любимая gentoo не захотела корректно работать на данном сервере.
мы имеем установленный сервер с настроенной сетью и выходом до ближайшего репозитория (ну например у нас в городе есть его зеркало)
Все хорошо знают что фпс сервера на linux зависят от параметра HZ в ядре а именно нам надо ядро в котором HZ=1000
Этот момент для начинающих linux админов был смертельным пунктом т.к. не каждый сможет пересобрать ядро (темболее удалённо)
В репозитории убунты уже есть ядро которое нас полностью устроит тоесть в нём выставлен параметр HZ=1000 и ещё несколько параметров улудшающих отклик сервера.
и так стави тюнингованное ядро
$ sudo apt-get install linux-rt
Будут заданы пару вопросов.
после установки появится запись в загрузчики о новом ведре. осталось поправить чтоб новое ядро грузилось автоматически.
идём в
/boot/grub
там находим файл menu.lst
и в нём находим запись
default 4
Мой пример, это говорит о том что будут грузить 5ю(!!!! Счёт идёт с нуля буд-те внимательны!!!) запись о ведре в этом списке следуем в конец файла у меня это выглядит так
## ## End Default Options ##
title Ubuntu 7.10, kernel 2.6.23-mega
root (hd0,0)
kernel /boot/vmlinuz-2.6.23-mega root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro quiet splash
initrd /boot/initrd.img-2.6.23-mega
quiet
title Ubuntu 7.10, kernel 2.6.23-mega (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.23-mega root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro single
initrd /boot/initrd.img-2.6.23-mega
title Ubuntu 7.10, kernel 2.6.22-14-server
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-server root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-server
quiet
title Ubuntu 7.10, kernel 2.6.22-14-server (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-server root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro single
initrd /boot/initrd.img-2.6.22-14-server
title Ubuntu 7.10, kernel 2.6.22-14-rt
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-rt root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-rt
quiet
title Ubuntu 7.10, kernel 2.6.22-14-rt (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-rt root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro single
initrd /boot/initrd.img-2.6.22-14-rt
title Ubuntu 7.10, memtest86+
root (hd0,0)
kernel /boot/memtest86+.bin
quiet
title Ubuntu 7.10, kernel 2.6.22-14-rt
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-rt root=UUID=d5137056-6822-408b-86b4-24fd43dc77a4 ro quiet splash
initrd /boot/initrd.img-2.6.22-14-rt
quiet
эта запись 4я по счёту начиная с нуля.
тоесть у меня грузится правильное ядро как определить а то ли это ядро? да просто у тюнингованного ядра есть префикс
kernel 2.6.22-14-rt
правим запись
default на нужное нам и отправляем машину в ребут
sudo reboot
после того как сервер перезагрузится с новым ядром проверяем всё ли так.
# uname -r
2.6.22-14-rt
тоесть мы в павильном ведре.
PS
Время будет допишу важные моменты по настройке CS сервера
saber добавил 21-11-2007 в 13:53:45:
Далее качаем cs сервер обновляем его патчим
Далее нам нужен скрипт запуска CS сервера с добавлением его в атозагрузку.
я например развернул сервера в каталог /var/servers/
у меня их несколько aim dm fun cw
Опять же выкладываю свой скрипт автозапуска
сохраняем его в /etc/init.d/
$ cat cs_start
#! /bin/sh
#####################################################
##### start/stop/restart script v2 by sentenced #####
#####################################################
#srv1_name ; Server name, example cs_pub, do not use long names with spaces!
#srv1_fname ; full server name like CS 1.6 PUB Server
#srv1_script ; if server is hl1 then type hlds_run if server is hl2 or CS:S type srcds_run
#srv1_ip ; IP address of server
#srv1_port ; Server port
#srv1_gametype ; Gametype, example cstrike, dods, or dod, etc.
#srv1_players ; maximum players on server
#srv1_map ; starting map
#srv1_svlan ; sv_lan 0/1, if your server is nosteam you need to turn it on, type 1
#srv1_pid ; server uses this file to write there process id
#srv1_heapsize ; this opt sets how much [max] RAM in kb server will use
#srv1_opts ; type there other server opts, like -nomaster -insecure
####################################################
srv1_name=CS2.VZLETKA.NET
srv1_fname="CS2.VZLETKA.NET"
srv1_dirpath="/var/servers/cs3fun/nosteam"
srv1_script=hlds_run
srv1_ip=89.105.128.155
srv1_port=27015
srv1_gametype=cstrike
srv1_players=22
srv1_map=de_dust2
srv1_svlan=1
srv1_pid=cspub.pid
srv1_heapsize=256000
srv1_opts="-nomaster -insecure -pingboost 2"
#####################################################
# don't tuch anything below this line!
#####################################################
#srv1_chk=`screen -ls | grep $srv1_name`
#srv1_chk=CS2.VZLETKA.NET
function srv1_started() {
if [ -z $srv1_chk ]; then
return 1
else
return 0
fi
}
function srv1_stop() {
srv1_started
if [ $? -eq 1 ]; then
return 1
fi
/usr/bin/screen -S $srv1_name -X quit >/dev/null 2>&1
return 0
}
function srv1_start() {
srv1_started
if [ $? -eq 0 ]; then
return 1
fi
cd $srv1_dirpath && screen -AmdS $srv1_name ./$srv1_script -game $srv1_gametype +maxplayers $srv1_players +map $srv1_map +port $srv1_port -heapsize $srv1_heapsize +sv_lan $srv1_svlan $srv1_opts -pidfile $srv1_pid
return 0
}
function srv1_echo() {
echo -n $2
$1
if [ $? -eq 0 ]; then
echo -e "\t\t[ OK ]"
else
echo -e "\t\t[FAIL]"
fi
return 0
}
case $1 in
start)
srv1_echo srv1_start "STARTING $srv1_fname: `basename $0` start"
;;
stop)
srv1_echo srv1_stop "STOPING $srv1_fname: `basename $0` stop"
;;
restart)
srv1_echo srv1_stop "STOPING $srv1_fname: `basename $0` stop"
srv1_echo srv1_start "STARTING $srv1_fname: `basename $0` start"
;;
*)
echo "Use Commands: `basename $0` start|stop|restart"
;;
esac
прописываем свои настройки.
далее пробуем стартануть сервер такой командой.
/etc/init.d/имя_скрипта start
далее проверяем что у нас запустилось
ps -A | grep hlds
$ ps -A |grep hlds
4597 pts/2 00:00:00 hlds_run
4825 pts/1 00:00:00 hlds_run
6555 pts/4 00:00:00 hlds_run
11830 pts/5 00:00:00 hlds_run
11838 pts/5 08:31:34 hlds_i686
29805 pts/1 00:54:52 hlds_i686
30790 pts/2 00:22:16 hlds_i686
31055 pts/4 00:00:46 hlds_i686
у меня запущено 4 сервера поэтому 4 скрипта запуска и 4 процесса сервера
hlds_run
следит за запуском своего сервера если его убить то и убивается сервер за которым он смотрит.
заодно скажу что убить сервер можно так
kill -KILL 4597
число это его pid
если всё правильно делали то сервер запустится, теперь его надо добавить в автозагрузку. для этого выполним такую команду.
code:
sudo update-rc.d dhcp3-server start 51 S .
Где вместо dhcp3-server
вписываем название скрипта запуска (тот что мы бросили в /etc/init.d/)
Для проверки отправляем в ребут машину после загрузки смотрим на наличие процесса сервера.
ps -A | grep hlds