4
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 19:46
|
root:~# ls -ld /home/ZombiePlague ls: cannot access /home/ZombiePlague: No such file or directory root@:~# ls -ld /root/ZombiePlague drwxr-xr-x 7 root root 4096 Sep 26 21:01 /root/ZombiePlague root@stzvps:~#
Какво по-дяволите?
|
|
|
5
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 19:42
|
root:~# /etc/init.d/classic start root:~# /etc/init.d/classic status Usage /etc/init.d/classic start|stop|restart|watch  След това пробвах със стоп, и пак пише, че не е пуснат.
|
|
|
7
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 18:38
|
root@stzvps:~# ls -l /etc/init.d/classic --wx-wx-wx 1 root root 3768 Sep 27 13:39 /etc/init.d/classic Като за начало, това не е добре - правата за достъп не дават четене на никой и писане и изпълняване на всички.
Имаш ли познания за права за достъп под Линукс (и Unix-like системи)? Да ти потърсим подходящо четиво, преди да ти кажем как да ги нагласиш?
А резултата от cat си е самия код Много добре, значи си се справил със създаването на файла. Остава и настройките да са правилни (тук аз не мога да ти помагам).
В скрипта съм писал /home/ZombiePlague. Това ме обърка. В смисъл, в скрипта (изхода от cat) няма никъде /home/ZombiePlague. Каква е тази папка - папката със сървъра ли?
Грешката беше моя, да това е папката на сървъра. А за правата предполагам, че ще стане така: chmod 777 -R classic, като предварително съм влязъл в папката init.d (имам предвид cd /etc/init.d/)
|
|
|
8
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 17:41
|
root@stzvps:~# ls -l /etc/init.d/classic --wx-wx-wx 1 root root 3768 Sep 27 13:39 /etc/init.d/classic А резултата от cat си е самия код #!/bin/sh ### BEGIN INIT INFO # Provides: csservers # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO # This script edit by kostov[Virtual.New.BG] # Server options TITLE='x4x0r' SESSION='hlds' DAEMON='hlds_run' DIR='/home/ZombiePlague' USER='root'
# Game options IP='79.124.16.82' PORT='27015' MAP='de_dust2' GAME='cstrike' PLAYERS='5' TICRATE='580' PINGBOOST='2' SVLAN='0' RCON=''
# Server options string OPTS="-game $GAME +ip $IP +maxplayers $PLAYERS +map $MAP -port $PORT +sv_lan $SVLAN +rcon_password $RCON +sys_ticrate $TICRATE -pingboost $PINGBOOST -master -noipx -nojoy +log off -pidfile $DIR/$GAME/$SESSION.pid"
# Screen command CURRENT_USER=$(/usr/bin/whoami) if [ "$CURRENT_USER" = "$USER" ]; then INTERFACE="/usr/bin/screen -A -m -d -S $SESSION" else INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $SESSION" fi
service_start() { if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then echo -e "Cannot start $TITLE. Server is already running." else if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then kill -9 `cat $DIR/$GAME/$SESSION-screen.pid` echo "Killing process ID $id" echo "Removing $TITLE screen pid file" rm -rf $DIR/$GAME/$SESSION-screen.pid break fi if [ -f $DIR/$GAME/$SESSION-screen.pid ]; then rm -rf $DIR/$GAME/$SESSION-screen.pid fi echo "Removing $TITLE pid file" rm -rf $DIR/$GAME/$SESSION.pid screen -wipe 1> /dev/null 2> /dev/null service_start fi else if [ -x $DIR/$DAEMON ]; then echo "Starting $TITLE" cd $DIR $INTERFACE $DIR/$DAEMON $OPTS sleep 15 ps -ef | grep SCREEN | grep "$SESSION" | grep -v grep | awk '{ print $2}' > $DIR/$GAME/$SESSION-screen.pid echo "$TITLE screen process ID written to $DIR/$GAME/$SESSION-screen.pid" echo "$TITLE server process ID written to $DIR/$GAME/$SESSION.pid"
echo "$TITLE started." chmod 666 $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null chown $USER $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null sleep 15 fi fi }
service_stop() { if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then echo "Stopping $TITLE" for id in `cat $DIR/$GAME/$SESSION-screen.pid` do kill -9 $id echo "Killing process ID $id" echo "Removing $TITLE screen pid file" rm -rf $DIR/$GAME/$SESSION-screen.pid break done echo "Removing $TITLE pid file" rm -rf $DIR/$GAME/$SESSION.pid screen -wipe 1> /dev/null 2> /dev/null echo "$TITLE stopped." else echo -e "Cannot stop $TITLE. Server is not running." fi }
service_watch() { if [ `screen -wipe | grep $SESSION | grep -v grep | awk '{ print $2 }'` == '(Attached)' ]; then echo -e "Someone is already attached to the console of the server.\n Might want to check who" else screen -r $SESSION fi }
case "$1" in 'start') service_start ;; 'stop') service_stop ;; 'restart') service_stop sleep 10 service_start ;; 'watch') service_watch ;; *) echo "Usage $0 start|stop|restart|watch" esac
exit 0 Може да не съм написал правилната директория, когато вляза в ftp главната директория е root, и там се намира самата папка ZombiePlague. В скрипта съм писал /home/ZombiePlague.
|
|
|
9
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 16:37
|
Здравейте, В темата бях го написал, но няма нищо, използвам Debian, без графична среда. Ето го "урока": Здравейте
Поради това, че спирам Virtual.New.BG, за да не се загуби полезния скрипт го качвам тук!
Този скрипт прави следното:
* Държи вашия сървър винаги пуснат, демек когато крашне скрипта ще го дигне отново * Конзола която е в отделна сесия и винаги можете да влезете в нея * Имате възможност по-всяко време (чрез команда) да спрете, пуснете сървъра дори и да го рестартирате * Автоматично стартиране на сървъра всеки път щом пуснете вашата машина * Лесно се настройва и върши много добра работа
И нека да започнем с настройките на скрипта: (Той е прикачен по-долу в поста) 1. Преди да започнем със скрипта, трябва да инсталиране едно приложение ако го нямате със следната команда: За Debian базираните: Код: apt-get install screen
За RedHat базираните Код: yum install screen
2. Правите файл с някакво име в папката /etc/init.d Код: nano /etc/init.d/classic
3. Слагате в него съдържанието и го настройвате: Код: TITLE='Counter-Strike Dedicated Server' - Най-добре е тук да сложите името на сървъра ви (За да не се бъркате) SESSION='hlds' - Името на сесията, чрез която по-късно ако ви се наложи да влезнете в конзолата на сървъра DAEMON='hlds_run' - Името на демота който ще стартирате (Както обикновено той е hlds_run) DIR='/home/hlds' - Пътя до директорията на сървъра USER='root' - Под какъв потребител да върви сървъра (Препоръчително е да си остане root)
# Game options IP='127.0.0.1' - Ип-то на сървъра през което той да тръгне PORT='27015' - Порта на сървъра MAP='de_dust2' - Стартиращата карта (С коя карта да тръгне сървъра) GAME='cstrike' - Коя модификация искате да пуснете (За CS - cstrike. За Half-Life - valve) PLAYERS='21' - Колко максимални играча да има сървъра TICRATE='600' - sys_ticrate на сървъра PINGBOOST='2' - Буустера на сървъра възможности 1, 2 или 3 SVLAN='0' - sv_lan опцията RCON='' - И rcon паролата (Ако не искате такава оставете това празно)
4. След като сте настроили сървъра е време да му зададем права: Код: chmod +x името-на-файла
Пример: Код: chmod +x classic
5. Сега време да вкараме скрипта в процесите на Linux-а за Debian базирани: Код: update-rc.d името-на-файла defaults 99
Пример: Код: update-rc.d classic defaults 99
5. Сега време да вкараме скрипта в процесите на Linux-а за RedHat базирани: Код: chkconfig --level 345 името-на-файла on
Пример: Код: chkconfig --level 345 classic on
6. Вече скрипта е готов за работа, ето и командите да опериране с него: 6.1. Стартиране на сървъра: Код: /etc/init.d/classic start
6.2. Спиране на сървъра: Код: /etc/init.d/classic stop
6.3. Рестартиране на сървъра: Код: /etc/init.d/classic restart
7. Как да влезем в неговата сесия (Демек в конзолата на сървъра) Код: /etc/init.d/името-на-файла watch
Пример: Код: /etc/init.d/classic watch
8. Как да излезем от конзолата без сървъра да спре: 8.1. Натискате едновременно комбинацията от бутони: Код: Ctrl + A + D
Внимание: Ако настинете комбинацията Код: Ctrl + C
Сървъра ви ще спре!
Промени: 1. Преправяне на скрипта, за да тръгне на новия Debian Squeezy 2. Пренаписване времето за което сървъра се рестартира (Така се избягват евентуално дубликиране на сесиите) 3. Добавяне на нова опция в скрипта "watch" която Ви позволява директно влизане в конзолата на сървъра 4. Премахване на HighPriority опцията, тъй като беше излишна
Има един прикачен файл, съдържанието му: #!/bin/sh ### BEGIN INIT INFO # Provides: csservers # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start daemon at boot time # Description: Enable service provided by daemon. ### END INIT INFO # This script edit by kostov[Virtual.New.BG] # Server options TITLE='Counter-Strike Dedicated Server' SESSION='hlds' DAEMON='hlds_run' DIR='/home/slidenew2' USER='root'
# Game options IP='213.145.104.230' PORT='37015' MAP='slide_kzfr_woodslide' GAME='cstrike' PLAYERS='5' TICRATE='580' PINGBOOST='2' SVLAN='0' RCON=''
# Server options string OPTS="-game $GAME +ip $IP +maxplayers $PLAYERS +map $MAP -port $PORT +sv_lan $SVLAN +rcon_password $RCON +sys_ticrate $TICRATE -pingboost $PINGBOOST -master -noipx -nojoy +log off -pidfile $DIR/$GAME/$SESSION.pid"
# Screen command CURRENT_USER=$(/usr/bin/whoami) if [ "$CURRENT_USER" = "$USER" ]; then INTERFACE="/usr/bin/screen -A -m -d -S $SESSION" else INTERFACE="sudo -u $USER /usr/bin/screen -A -m -d -S $SESSION" fi
service_start() { if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then echo -e "Cannot start $TITLE. Server is already running." else if [ "$(ps -p `cat $DIR/$GAME/$SESSION.pid` | wc -l)" -gt 1 ]; then kill -9 `cat $DIR/$GAME/$SESSION-screen.pid` echo "Killing process ID $id" echo "Removing $TITLE screen pid file" rm -rf $DIR/$GAME/$SESSION-screen.pid break fi if [ -f $DIR/$GAME/$SESSION-screen.pid ]; then rm -rf $DIR/$GAME/$SESSION-screen.pid fi echo "Removing $TITLE pid file" rm -rf $DIR/$GAME/$SESSION.pid screen -wipe 1> /dev/null 2> /dev/null service_start fi else if [ -x $DIR/$DAEMON ]; then echo "Starting $TITLE" cd $DIR $INTERFACE $DIR/$DAEMON $OPTS sleep 15 ps -ef | grep SCREEN | grep "$SESSION" | grep -v grep | awk '{ print $2}' > $DIR/$GAME/$SESSION-screen.pid echo "$TITLE screen process ID written to $DIR/$GAME/$SESSION-screen.pid" echo "$TITLE server process ID written to $DIR/$GAME/$SESSION.pid" echo "$TITLE started." chmod 666 $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null chown $USER $DIR/$GAME/*.pid #1> /dev/null 2> /dev/null sleep 15 fi fi }
service_stop() { if [ -f $DIR/$GAME/$SESSION.pid ] || [ -f $DIR/$GAME/$SESSION-screen.pid ]; then echo "Stopping $TITLE" for id in `cat $DIR/$GAME/$SESSION-screen.pid` do kill -9 $id echo "Killing process ID $id" echo "Removing $TITLE screen pid file" rm -rf $DIR/$GAME/$SESSION-screen.pid break done echo "Removing $TITLE pid file" rm -rf $DIR/$GAME/$SESSION.pid screen -wipe 1> /dev/null 2> /dev/null echo "$TITLE stopped." else echo -e "Cannot stop $TITLE. Server is not running." fi }
service_watch() { if [ `screen -wipe | grep $SESSION | grep -v grep | awk '{ print $2 }'` == '(Attached)' ]; then echo -e "Someone is already attached to the console of the server.\n Might want to check who" else screen -r $SESSION fi }
case "$1" in 'start') service_start ;; 'stop') service_stop ;; 'restart') service_stop sleep 10 service_start ;; 'watch') service_watch ;; *) echo "Usage $0 start|stop|restart|watch" esac
exit 0 Какво правя аз? Във създадения файл (примерно classic) поставям съдържанието на горния код и следвам стъпките описани в урока. Тръгна да пускам сървъра, но нищо, нито съобщението, нито нищо, пробвах да спра сървъра, но ми изписа, че сървъра изобщо не е бил стартиран?
|
|
|
10
|
Игри за Linux / Общ форум / Re: Обяснение на урок
|
-: Sep 27, 2012, 13:36
|
Аз ако имах възможност щях да се преместя, но това предлагат от хостинг компанията. Ако някой ще помага, да помага, както казах, ако имах възможност щях да мина на windows.
|
|
|
11
|
Игри за Linux / Общ форум / Обяснение на урок
|
-: Sep 26, 2012, 19:59
|
Здравейте, От скоро се занимавам с линукс и не съм много напред, та зак'во ми е тоя линукс освен за цс сървъри, наех си аз VPS, настроих сървърите, всичко, и остана само едно, стартиращ скрипт ама нещо не ми се получава, ето го самия скрипт и 'обяснението' - http://amxmodxbg.org/forum/archive/linux-%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B8%D1%80%D0%B0%D1%89-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D0%B7%D0%B0-counterstrike-%D1%81%D1%8A%D1%80%D0%B2%D1%8A%D1%80%D0%B8-33998.html. Ще съм благодарен на някой, който ми обясни от до как става, има един файл hlds-2.txt, к'во да го правя ми кажи..., нищо не пише в тая тема, милиарди грешки ми дава, а няма кой да ми помогне. Вие сте последната ми надежда. Btw: Ползвам Debian, без графична среда. Благодаря !
|
|
|
14
|
Игри за Linux / Общ форум / Как да играя в gamedesire?
|
-: Jul 18, 2011, 22:04
|
Вчера си инсталирах "Убунту" и въпроса ми е, мога ли с някаква програма да играя в , понеже ми пише, че операционната система не е съвместима.  Моля да ме извините, ако раздела е грешен.
|
|
|
|