Титла: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 09:46 Здравейте приятели и драги съфорумници. Имам едно питане, което ме мъчи отдавна. Имам гейм сървър на Counter-Strike 1.6 под Ubuntu 14.04 Server. С всичко се оправих, но не мога да го накарам да тръгва при буутване на ОС. Сървъра се намира в home/x3reme/cs/game и го стартирам с един изпълним файл ./start . Стартира се чрез програмата screen, a ето и съдържанието на файла start.
screen -A -m -d -S hlds ./hlds_run -game cstrike -pingboost 3 -autoupdate -port 27015 +maxplayers 32 +map de_dust2 Ще ви бъда изключително благодарен, ако ми помогнете :) . Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: BRADATA в Mar 10, 2015, 10:05 сложи
Код: /home/x3reme/cs/game/start Код: exit 0 Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: bvbfan в Mar 10, 2015, 10:17 Файлът start трябва да съдържа
Код
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: 4096bits в Mar 10, 2015, 10:17 Аз съм почитател на tmux
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 10:58 И така съм пробвал, не иска и не иска да се стартира.
Ето го файла rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /home/x3reme/cs/game/start exit 0 И скрипта start оправих, но не иска да се стартира и това е. Пробвах и с cronjob, но отново същия резултат. Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: laskov в Mar 10, 2015, 11:21 А като го стартираш със същия ред или с ./start ръчно в терминал тръгва ли?
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 11:25 Да, тръгва си, така го ползвам от месец, но ако се ресне машината ( с тия токови удари и спирания на тока) трябва да влизам и да го пускам ръчно, та затова искам да тръгва след boot-ване на ОС.
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: ray в Mar 10, 2015, 11:26 Здравейте,
Първо виж дали имаш този файл/връзка /bin/sh (може да пробваш и с /bin/bash, трябва да ги има). Какви са правата на файла: /etc/rc.local (изпълним ли е ?). В зависимост от дистрибуцията може би ползваш systemd, там май имаше някакви промени (трябва да го добавиш като услуга и да е изпълним). Също така не се гарантира че стартира последен. Последно опитай ръчно да стартираш скрипта: /home/x3reme/cs/game/start да видим какво ще стане (видях че си писал че така работи). Успех. Румен Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 11:37 Имам и двата файла.
Ето правата на rc.local x3reme@system:~$ ls -l /etc/rc.local -rwxr-xr-x 1 root root 305 Mar 10 11:20 /etc/rc.local Като отида до него и го стартирам с ./start или с целия ред от файла start, тръгва. При опит с /home/x3reme/cs/game/start нищо не се случва. Извинявам се, но не съм толкова запознат с линукс, така, че не се смейте, ако изтърся някоя глупост :) . Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: neter в Mar 10, 2015, 11:56 Обърни внимание, че в командата си описал изпълнимия файл с относителен път:
screen -A -m -d -S hlds ./hlds_run -game cstrike -pingboost 3 -autoupdate -port 27015 +maxplayers 32 +map de_dust2При това, ако изпълниш командата от папка, различна от тази, която съдържа изпълнимия файл, то файлът няма да бъде намерен и няма да бъде изпълнен. Затова не ти се получава изпълнението на скрипта при зареждане на системата или при изпълнение с пълен път, когато не си в неговата папка. Впиши пълния път до изпълнимия файл! Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 12:02 Опитай със следното:
Код: sudo cp /home/x3reme/cs/game/start /etc/init.d/ и reboot-ни да видиш дали ще запали. Имай на предвид, че start не е добро име за скрипт :) Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 12:12 Опитай със следното: И така не се получава. Значи въведох целия път в скрипта, обаче същата работа, не мога да го изпълня от друга папка, освен от тази в която се намира. А като съм в нея се изпълнява и с целия път до скрипта - /home/x3reme/cs/game/start. От другаде не мога да го стартирам и е ясно, че аз греша някъде. Код: screen -A -m -d -S hlds /home/x3reme/cs/game/hlds_run -game cstrike -pingboost 3 -autoupdate -port 27015 +maxplayers 32 +map de_dust2 Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 12:15 Извинявай, чета между редовете...
Погледни какво е написал neter няколко поста по-нагоре...трябва да зададеш пълните пътеки до изпълнимите файлове...включително и на screen която вероятно е /usr/bin/screen Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 12:29 Добавих и /usr/bin/ преди screen, но отново не се изпълнява от никъде другаде, освен от неговата папка. Ако го накарам да тръгва и от други директории, съм сигурен, че с rc.local ще стане.
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 12:35 Инсталирай strace (sudo apt-get install strace) и стартирай файла със следното:
Код: strace -o strace.out -vf -s 1024 /home/x3reme/cs/game/start След което прикачи strace.out тук или качи съдържанието му (това е output-а от strace) във pastebin Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 12:38 Directory '/var/run/screen' must have mode 777.
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 12:46 http://pastebin.com/xLpbBSc7
Не обръщай внимание, че директорията е /home/x3reme/cs/start, a не /home/x3reme/cs/game/start, понеже ползвам идентични машини и не искам да спирам работещия сървър за тестове :) Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 12:55 Мне....това е проблем със strace не със screen. Ако си chmod-нал директорията /var/run/screen/ после ще трябва да и върнеш 775
шит... Опитай същият strace но изпълни само командата от файла, без screen и всичко това го направи във нов screen със пълните пътища. Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 13:12 Нещо не схванах смисъла на последното изречение. Направих следното strace директно с кода от start без скрийн, но файла strace.out стана 84 МБ и няма как да му постна редовете или каквото и да било тук.
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 13:27 Цитат , без screen и всичко това го направи във нов screen със пълните пътища.Да...няма много смисъл в последното изречение :) Опитвам се да разбера, дали проблема е в скрийн-а или в командата за стартиране на услугата. Ако изпълниш директно: Код: ./path/to/file/hlds_run -game cstrike -pingboost 3 -autoupdate -port 27015 +maxplayers 32 +map de_dust2 Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 13:37 Само ти флудя темата с предположения...никога не съм се занимавал с game server-и...
Та...разтръсих се специално за твоя сървър и мисля че можеш да погледнеш следната тема: https://forums.alliedmods.net/showthread.php?t=158393 Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: neter в Mar 10, 2015, 13:57 Между другото, има ли някакво задължение това приложение да се пуска през screen, или е за удобство?
Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 14:15 Между другото, има ли някакво задължение това приложение да се пуска през screen, или е за удобство? За удобство е. Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: k0tka в Mar 10, 2015, 14:16 Между другото, има ли някакво задължение това приложение да се пуска през screen, или е за удобство? Доколкото прочетох може и с nohup и & , но по този начин няма да имаш достъп до "конзолата" от която вероятно има разни логове и/или опции за администратиране на услугата Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 14:34 Така, започна да се отваря отвсякъде, трябвало е да се добави във satrt и пътя до файла, където изпълнява hlds_run
Това е скрипта start - #!/bin/bash cd /home/x3reme/cs screen -A -m -d -S hlds /home/x3reme/cs/hlds_run -game cstrike -autoupdate -port 27015 +maxplayers 24 +map de_dust2 Обаче го стартира като root, а аз искам да се стартира от потребител x3reme. Пробвах със "su x3reme" в началото на кода, но при ръчно изпълнение ми иска парола, а чрез rc.local не се случва нищо Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: neter в Mar 10, 2015, 15:02 Пробвах със "su x3reme" в началото на кода, но при ръчно изпълнение ми иска парола, а чрез rc.local не се случва нищоСинтаксисът е Код: su - x3reme -c "команда" Титла: Re: Стартиране на screen при boot-ване на Ubuntu 14.04 Публикувано от: Ba3KaTa в Mar 10, 2015, 15:20 Пробвах със "su x3reme" в началото на кода, но при ръчно изпълнение ми иска парола, а чрез rc.local не се случва нищоСинтаксисът е Най-накрая, благодаря на всички за отзивчивостта и помощта. Вече тръгва точно както го исках, благодаря ви много. |