Screen i serwer w tle
(→Jednoczesny obraz) |
(Wikizacja.) |
||
Linia 1: | Linia 1: | ||
− | |||
− | |||
=Wstęp= | =Wstęp= | ||
− | Mam nadzieję, że przeczytałeś | + | Mam nadzieję, że przeczytałeś tekst o [[screen]]. |
=Uruchomienie= | =Uruchomienie= | ||
− | Przykład dla serwera [[HLDS]] ale dla wszelkich innych programów będzie podobnie - | + | Przykład dla serwera [[HLDS]], ale dla wszelkich innych programów będzie podobnie - różnica w komendzie startującej dany program i parametrach. |
Wpisujemy w konsoli | Wpisujemy w konsoli | ||
− | screen -A -m -d ./hlds_run -game cstrike | + | screen -A -m -d ./hlds_run -game cstrike +maxplayers 22 +servercfgfile server.cfg |
Oczywiście jak trzeba dodajemy potrzebne opcje z parametrami jak +ip czy +rcon_password, czyli wklejamy całą linie startową naszego serwera. | Oczywiście jak trzeba dodajemy potrzebne opcje z parametrami jak +ip czy +rcon_password, czyli wklejamy całą linie startową naszego serwera. | ||
=Sprawdzenie= | =Sprawdzenie= | ||
− | Upewniamy się że proces chodzi na screenie | + | Upewniamy się, że proces chodzi na screenie |
[i]screen -ls[/i] | [i]screen -ls[/i] | ||
− | Powinna się pojawić lista aktywnych screenów do których | + | Powinna się pojawić lista aktywnych screenów, do których można się podłączyć, na przykład: |
<pre> | <pre> | ||
hlds@bagno ~ $ screen -ls | hlds@bagno ~ $ screen -ls | ||
Linia 25: | Linia 23: | ||
</pre> | </pre> | ||
− | Aby | + | Aby się do niego dołączyć wpisujemy: |
− | + | screen -r | |
− | Aby odłączyć wciskamy klawisze '''ctrl+a+d''', albo jak to nie działa zamknij program do | + | Aby odłączyć wciskamy klawisze '''ctrl+a+d''', albo jak to nie działa to jest metoda brutalna w postaci: "zamknij program do połączeń przez [[SSH]]". |
=Kilka serwerów= | =Kilka serwerów= | ||
− | Jeśli uruchamiamy kilka serwerów, czyli także i screenów (choć można i to wszystko zrobić na jednym...) przydaje się dodanie parametru: '''-S <nazwa>'''. | + | Jeśli uruchamiamy kilka serwerów, czyli także i screenów (''choć można i to wszystko zrobić na jednym...'') przydaje się dodanie parametru: '''-S <nazwa>'''. |
Owy parametr pozwala określić nazwę dla danego screen-a, zamiast wpisywać jego PID (''Numer identyfikacyjny procesu, czyli coś takiego jak numer na tablicy rejestracyjnej danego pojazdu''), np.: | Owy parametr pozwala określić nazwę dla danego screen-a, zamiast wpisywać jego PID (''Numer identyfikacyjny procesu, czyli coś takiego jak numer na tablicy rejestracyjnej danego pojazdu''), np.: | ||
screen -r <jakiś numerek> | screen -r <jakiś numerek> | ||
− | Zastosujmy to z powyższym przykładem (zauważ że chodzą na różnych portach): | + | Zastosujmy to z powyższym przykładem (''zauważ, że chodzą na różnych portach''): |
− | screen -A -m -d -S nazwa1 ./hlds_run -game cstrike | + | screen -A -m -d -S nazwa1 ./hlds_run -game cstrike +port 27015 +maxplayers 22 +servercfgfile server.cfg |
− | I teraz odpalamy drugi | + | I teraz odpalamy drugi serwer: |
− | screen -A -m -d -S nazwa2 ./hlds_run -game cstrike | + | screen -A -m -d -S nazwa2 ./hlds_run -game cstrike +port 27016 +maxplayers 22 +servercfgfile server.cfg |
− | I później aby się do niego dołączyć wpisujemy: | + | I później, aby się do niego dołączyć wpisujemy: |
screen -r nazwa | screen -r nazwa | ||
− | W tym wypadku będzie to '''nazwa1''' i '''nazwa2'' - odpowiednio dla serwerów postawionych na porcie 27015 i 27016. | + | W tym wypadku będzie to '''nazwa1''' i '''nazwa2'' - odpowiednio dla serwerów postawionych na porcie '''27015''' i '''27016'''. |
=Jednoczesny obraz= | =Jednoczesny obraz= | ||
Kolejnym ciekawym parametrem do screen-a jest '''-x'''. | Kolejnym ciekawym parametrem do screen-a jest '''-x'''. | ||
Jest to parametr pozwalający pracować więcej niż jednemu terminalowi/osobie na danym screen-ie. | Jest to parametr pozwalający pracować więcej niż jednemu terminalowi/osobie na danym screen-ie. | ||
− | Otóż zaistnieje przykładowo taka sytuacja: mamy dwóch headadminów na serwerze i obaj naraz chcą podpatrzeć co się aktualnie dzieje na serwerze (będąc zalogowanym na tego samego uzytkownika!), w tym momencie jeden wpisuje: ''screen -r'' i już jest na screenie i widzi wszystko, natomiast drugi nie może się dołączyć, ponieważ dany screen jest już okupowany przez tego pierwszego. | + | Otóż zaistnieje przykładowo taka sytuacja: mamy dwóch headadminów na serwerze i obaj naraz chcą podpatrzeć co się aktualnie dzieje na serwerze (''będąc zalogowanym na tego samego uzytkownika!''), w tym momencie jeden wpisuje: ''screen -r'' i już jest na screenie i widzi wszystko, natomiast drugi nie może się dołączyć, ponieważ dany screen jest już okupowany przez tego pierwszego. |
− | Teraz, aby mógł on się do niego dołączyć jest użycie metody dość drastycznej, czyli "wykickowanie" danej osoby z tego screen-a, ale po co, skoro można użyć czegoś takiego jak '''-x''', dzięki temu dwóch adminów może siedzieć na jednej konsoli serwera. | + | Teraz, aby mógł on się do niego dołączyć jest użycie metody dość drastycznej, czyli "wykickowanie" danej osoby z tego screen-a (''screen -dr''), ale po co, skoro można użyć czegoś takiego jak '''-x''', dzięki temu dwóch adminów może siedzieć na jednej konsoli serwera. |
To tyle, jeśli chodzi o ciekawostki związane z genialnym narzędziem jakim jest screen, reszta w manualu. | To tyle, jeśli chodzi o ciekawostki związane z genialnym narzędziem jakim jest screen, reszta w manualu. | ||
− | =Jeden terminal a tyle screenów= | + | =Jeden terminal, a tyle screenów= |
− | Jak juz odpalac kilka procesow na jednym koncie to czasami sie przydaje praca na jednym procesie screena z wieloma konsolami, bodajze (mam to w palcach nie w glowie :P | + | Jak juz odpalac kilka procesow na jednym koncie to czasami sie przydaje praca na jednym procesie screena z wieloma konsolami, bodajze (''mam to w palcach nie w glowie :P''): |
*ctrl+a+c - dodanie dodatkowego ekranu | *ctrl+a+c - dodanie dodatkowego ekranu | ||
*ctrl+a+spacja - przelaczenie na nastepny ekran | *ctrl+a+spacja - przelaczenie na nastepny ekran | ||
Linia 61: | Linia 59: | ||
a szczegoly w manualu screen'a | a szczegoly w manualu screen'a | ||
− | + | [[Kategoria:Linux]] | |
− | + | [[Kategoria:Serwery gier]] | |
− | + | ||
− | + | ||
− | + |
Aktualna wersja na dzień 17:57, 7 paź 2007
Spis treści |
Wstęp
Mam nadzieję, że przeczytałeś tekst o screen.
Uruchomienie
Przykład dla serwera HLDS, ale dla wszelkich innych programów będzie podobnie - różnica w komendzie startującej dany program i parametrach.
Wpisujemy w konsoli
screen -A -m -d ./hlds_run -game cstrike +maxplayers 22 +servercfgfile server.cfg
Oczywiście jak trzeba dodajemy potrzebne opcje z parametrami jak +ip czy +rcon_password, czyli wklejamy całą linie startową naszego serwera.
Sprawdzenie
Upewniamy się, że proces chodzi na screenie [i]screen -ls[/i] Powinna się pojawić lista aktywnych screenów, do których można się podłączyć, na przykład:
hlds@bagno ~ $ screen -ls There is a screen on: 19381.cs (Detached) 1 Socket in /var/run/screen/S-hlds. hlds@bagno ~ $
Aby się do niego dołączyć wpisujemy:
screen -r
Aby odłączyć wciskamy klawisze ctrl+a+d, albo jak to nie działa to jest metoda brutalna w postaci: "zamknij program do połączeń przez SSH".
Kilka serwerów
Jeśli uruchamiamy kilka serwerów, czyli także i screenów (choć można i to wszystko zrobić na jednym...) przydaje się dodanie parametru: -S <nazwa>. Owy parametr pozwala określić nazwę dla danego screen-a, zamiast wpisywać jego PID (Numer identyfikacyjny procesu, czyli coś takiego jak numer na tablicy rejestracyjnej danego pojazdu), np.:
screen -r <jakiś numerek>
Zastosujmy to z powyższym przykładem (zauważ, że chodzą na różnych portach):
screen -A -m -d -S nazwa1 ./hlds_run -game cstrike +port 27015 +maxplayers 22 +servercfgfile server.cfg
I teraz odpalamy drugi serwer:
screen -A -m -d -S nazwa2 ./hlds_run -game cstrike +port 27016 +maxplayers 22 +servercfgfile server.cfg
I później, aby się do niego dołączyć wpisujemy:
screen -r nazwa
W tym wypadku będzie to nazwa1' i nazwa2 - odpowiednio dla serwerów postawionych na porcie 27015 i 27016.
Jednoczesny obraz
Kolejnym ciekawym parametrem do screen-a jest -x. Jest to parametr pozwalający pracować więcej niż jednemu terminalowi/osobie na danym screen-ie. Otóż zaistnieje przykładowo taka sytuacja: mamy dwóch headadminów na serwerze i obaj naraz chcą podpatrzeć co się aktualnie dzieje na serwerze (będąc zalogowanym na tego samego uzytkownika!), w tym momencie jeden wpisuje: screen -r i już jest na screenie i widzi wszystko, natomiast drugi nie może się dołączyć, ponieważ dany screen jest już okupowany przez tego pierwszego. Teraz, aby mógł on się do niego dołączyć jest użycie metody dość drastycznej, czyli "wykickowanie" danej osoby z tego screen-a (screen -dr), ale po co, skoro można użyć czegoś takiego jak -x, dzięki temu dwóch adminów może siedzieć na jednej konsoli serwera. To tyle, jeśli chodzi o ciekawostki związane z genialnym narzędziem jakim jest screen, reszta w manualu.
Jeden terminal, a tyle screenów
Jak juz odpalac kilka procesow na jednym koncie to czasami sie przydaje praca na jednym procesie screena z wieloma konsolami, bodajze (mam to w palcach nie w glowie :P):
- ctrl+a+c - dodanie dodatkowego ekranu
- ctrl+a+spacja - przelaczenie na nastepny ekran
- ctrl+a+a - przelaczenie na poprzedni ekran
- ctrl+a+numerek - wybor ekranu o numerze od 0 do 9
a szczegoly w manualu screen'a