Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Uruchamianie własnego serwera HLDS na zdalnej maszyniePoprzez SSH, PuTTY, konsolę zdalną itp.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 23.11.2013 14:34

*
Popularny

Przedmiotem poradnika NIE JEST instalacja serwera, ale jego URUCHOMIENIE. Jeśli chcesz zainstalować serwer, znajdź odpowiedni poradnik na tym forum.

Wstęp



Więc jak już napisałem wyżej, zajmiemy się uruchomieniem serwera HLDS (CS 1.6 czy jakiejś innej gry). Dotyczy to serwerów na jakiejś zdalnej maszynie/zdalnym komputerze, przez który zarządzamy poprzez SSH, PuTTY lub konsolę w panelu (nie mam tu na myśli konsoli serwera HLDS w panelu hostingu! Ale konsolę np serwera VPS!). Jeśli macie panel do swojego wykupionego serwera, gdzie możecie włączać lub wyłączać serwer, to ten poradnik raczej dla Was nie jest.

Z konsolą odpowiednią raczej powinniście być już zaznajomieni, gdy instalowaliście ten serwer, więc tego nie będę tutaj poruszał.

Pokażę Wam w poradniku kilka naprawdę fajnych sposobów na zarządzanie takim serwerem.

Sposoby odpalenia serwera



Ta sekcja poradnika nie jest obowiązkowa

Omawiam tutaj szczegóły działania tego, co jest opisane dalej, jeśli nie potrzebujesz wiedzieć takich rzeczy, przeskocz dalej do sekcji "Skrypty". Polecam jednak przeczytać tą sekcję, aby wiedzieć co się dzieje i jak to działa.


Są trzy sposoby na uruchomienie serwera na zdalnej maszynie, każdy z nich ma swoje wady i zalety, założę się, że wszyscy z Was zabiorą się za ten trzeci. Oto sposoby:
  • Uruchomienie bezpośrednie
  • Fork
  • Screen
Omówimy teraz każdy z nich

uruchomienie bezpośrednie



Sposób bardzo banalny, wklepujemy po prostu w konsolę wklepujemy komendę hlds_run z odpowiednimi parametrami startowymi. Przykład:
./hlds_run -game cstrike -insecure +port 27015 +maxplayers 10 +map de_dust +mapchangecfgfile server.cfg
I po odpaleniu tej komendy uruchomi się nam serwer. Zobaczymy w konsoli wszystko, co nam serwer wypluwa i będziemy mogli wpisać do niego dowolną komendę, np na zmianę mapy :)

Krótkie objaśnienie... ./ oznacza, że plik do uruchomienia znajduje się w bieżącym katalogu, bez ./ system będzie szukał zainstalowanych programów i wbudowanych komend, nie znajdzie raczej hlds_run pośród nich i wyskoczy nam błąd. Również trzeba zwrócić uwagę na to, aby być w katalogu, w którym hlds_run się znajduje. To ważna informacja i warto ją zapamiętać, bo będzie dalej w poradniku to omawiane.

Parametry, które podajemy do hlds_run są chyba zrozumiałe... Ostatni może być niezrozumiały, gdyż zwykle podaje się tutaj +exec, a nie +mapchangecfgfile. +exec spowoduje uruchomienia server.cfg tylko przy uruchamianiu serwera, +mapchangecfgfile będzie to robił po każdej zmianie mapy. Da to nam możliwość aktualizowania zawartości server.cfg bez restartowania całego serwera... I naprawi błędy z timelimitem powodowane przez niektóre pluginy do vote map :)

Sposób ten ma jednak ogromną wadę... Gdy tylko zamkniemy konsolę, serwer również zostanie zamknięty... Przyczyna jest taka, że nie uruchamia się on w tle, ale bezpośrednio w naszej konsoli. Następne 2 sposoby zapobiegają temu problemowi.

Fork



Ten sposób uruchomi serwer w tle. Od poprzedniego sporo się nie różni, wystarczy tylko na końcu komendy dodać & w taki sposób:
./hlds_run -game cstrike -insecure +port 27015 +maxplayers 10 +map de_dust +mapchangecfgfile server.cfg &
Teraz już nie ujrzymy konsoli HLDS, ale tylko ewentualną informację, że proces został uruchomiony w tle i będiemy mogli wpisać nową komendę... Możemy bez problemu zamknąć konsolę, a serwer będzie dalej uruchomiony. Wygodnie i szybko.

Ale tutaj mamy również pewną wadę... Gdy już uruchomimy serwer nie ma żadnego sposobu, aby dostać się do jego konsoli (no zostaje nam RCON, ale co gdy go wyłączyliśmy?). Również aby zamknąć serwer, musimy go "ubić". Tą wadę również przydałoby się wyeliminować...

Jeśli już uruchomiliśmy serwer tą metodą, należy wpisać w konsoli: killall hlds_run, aby go zamknąć. Ewentualnie mozemy zalogować się do serwera przez RCON i wpisać tam exit.

Screen



Najlepsza i posiadająca najmniej wad metoda, screen... Jednak podstawową wadę tej metody (ale nie taką straszną) muszę wymienić od razu: trzeba go zainstalować... Czasem będzie on zainstalowany domyślnie, sprawdźmy to wykonując po prostu w konsoli polecenie:
screen
Jeśli wszystko się powiedzie, nasza konsola zostanie "wyczyszczona", a na samej górze pojawi się tzw "znak zachęty", czyli to, gdzie zawsze wpisujemy nasze komendy. Jesteśmy w sesji screena więc :) Wychodzimy z niej wpisując po prostu exit. Jeśli się nie powiedzie, dostaniemy komunikat błędu. Jeśli twierdzi ten komunikat, że polecenia nie znaleziono, należy screena zainstalować. Tego procesu jednak tutaj nie opiszę, bo różni się on w zależności od używanego systemu na maszynie zdalnej. Ale support techniczny hostingu Wam w tym pomoże :) Ewentualnie Google.

No ok, skoro mamy już screena, możemy na nim odpalić nasz serwer. Robimy to w równie prosty sposób, co fork. Do komendy z pierwszego sposobu dodajemy na początku "screen -Am", parametry A oraz m mają specjalne, dość skomplikowane znaczenie... Da się i bez nich uruchomić, ale one zapobiegają pewnym błędom :) Nasza pełna komenda będzie więc wyglądać:
screen -Am ./hlds_run -game cstrike -insecure +port 27015 +maxplayers 10 +map de_dust +mapchangecfgfile server.cfg
Tak jak w pierwszym przykładzie, otrzymamy konsolę serwera, jednak z pewną różnicą... Możemy ją "odczepić" od naszej konsoli i "przyczepić" ponownie :)
Teraz coś do zapamiętania na później

MOD oznacza skrót klawiszowy CTRL+A w screenie w dalszym moim poradniku. Ten skrót klawiszowy daje nam dostęp do kontrolowania screenem. Po jego użyciu wciskamy klawisz w zależności od tego, co chcemy zrobić. Dla przykładu MOD ? oznacza wciśnięcie CTRL+A a następnie wciśnięcie ?. Jest to przydatna akurat komenda wyświetlająca wszystkie możliwe "modyfikatory" do CTRL+A.


Teraz, aby odczepić nasz serwer od konsoli używamy MOD d (patrz ramka wyżej), aby przyczepić spowrotem wpisujemy w konsoli screen -r. Możemy zakończyć pracę serwera wpisując w jego konsoli exit.

Jednak czasem chcemy uruchomić kilka serwerów na raz. Wtedy screen -r nie wie do którego konsoli chcemy wejść. Dlatego należy te screeny nazwać. Zamiast "screen -Am" używamy "screen -AmS NAZWA", gdzie nazwa to unikalna nazwa uruchamianego serwera, dla przykładu FFA :) Później, aby przyczepić się spowrotem do serwera FFA używamy "screen -r FFA". I po kłopocie :)

Screen jednak posiada troszkę wad, gdyż jest bardzo starym i nierozwijanym już oprogramowaniem. Jednak na potrzeby HLDS wystarcza. Jest dla niego nowa alternatywa o nazwie tmux, postaram się ją kiedyś opisać.



Tak też zakończyliśmy prezentację sposobów na uruchamianie serwera HLDS. Ale to jeszcze nie koniec poradnika :)

Skrypty




Aby było nam wygodniej zarządzać serwerem, przydatne są skrypty do tego. Możemy wtedy bardzo ułatwić sobie zarządzanie serwerem. Jeśli potrafisz pisać skrypty i masz jakiś ciekawy, zaprezentuj go w tym temacie, na pewno się komuś przyda.

Jeśli piszesz własny skrypt, pamiętaj o bezwzględnej ścieżce do hlds_run. Później zobaczysz dlaczego...

Wszystkie skrypty należy wkleić do pliku tekstowego na serwerze zdalnym, zapisać i nadać prawo uruchomienia ("chmod u+x nazwa_pliku")

Skrypt startowy HLDS by Vikus



W oryginale dostępny tutaj
Moja wersja od oryginału różni się drobnymi poprawkami.
Jest to bardzo fajny skrypt uruchamiający serwer HLDS. Aby go użyć wpisujemy w konsoli nazwę skryptu, a po niej czynność, dla nazwanego skryptu ffa wpisujemy:
./ffa start
aby uruchomić serwer. Dostępne są polecenia:
  • start - uruchamia serwer, jeśli nie jest uruchomiony
  • stop - zatrzymuje serwer, jeśli jest uruchomiony (robi to w brzydki sposób, więc lepiej wywołać exit w konsoli serwera)
  • restart - restartuje serwer
  • status - wyświetla status serwera (uruchomiony czy nie)
  • console - wywołuje konsolę serwera (w oryginalnym skrypcie była to komenda show, ale ją zmieniłem w mojej wersji). Z konsoli wychodzimy poprzez wciśnięcie CTRL+A a następnie klawisza D
Kod skryptu
Spoiler

Nie zapomnij skonfigurować skryptu w pierwszych jego liniach ;)

Globalizacja



Niestety wszystko wyżej ma jedną wadę, musimy być w katalogu w którym znajduje się plik hlds_run (gdy uruchamiamy bezpośrednio) lub w katalogu, gdzie znajduje się nasz skrypt (gdy uruchamiamy skryptem). I dodatkowo musimy pamiętać o tym głupim ./ ale jest na to rozwiązanie.

Udajemy się do katalogu home (wpisz "cd" i powinno Cię do niego przerzucić), w nim tworzymy katalog .local ("mkdir .local"), a w nim podkatalog bin ("mkdir .local/bin"). Teraz wchodzimy do tego katalogu ("cd .local/bin") i tam umieszczamy nasz skrypt startowy. Wracamy się do katalogu domowego i edytujemy plik .bashrc (jeśli go nie ma, to go tworzymy) i w nowej linii umieszczamy w nim:
export PATH=~/.local/bin:$PATH
Tą samą linię dodajemy do pliku .bash_login

Po ponownym połączeniu do konsoli serwera możemy z dowolnego katalogu wywołać nasz skrypt, bez ./ na początku i zadziała ;)
  • +
  • -
  • 11
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#2 Rellik #

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:148
  • Imię:Daniel
  • Lokalizacja:Random
Offline

Napisano 08.08.2014 23:04

Mi wyskakuje taki błąd o co chodzi?

-bash: ./zombie: /bin/bash^M: zĹy interpreter: Nie ma takiego pliku ani katalogu

Chmody nadane, plik stworzony.. .

 

I może jakąś jaśniej, jak zainstalować ten skrypt ? :/ Jesli serwer mam w ścieżce: 

 

/root/ZombieMod
?


  • +
  • -
  • 1

b_350_20_1A1A1A_1A1A1A_ADADAD_1A1A1A.png

b_350_20_1A1A1A_1A1A1A_ADADAD_1A1A1A.png
Nie jestem zaawansowany w dziedzinie AMXMOD-X.
Staram się pomóc na tyle ile potrafię.

Piszę poprawnie po POLSKU.

Psychopaci.Eu


#3 GwynBleidD

    Godlike

  • Autor tematu
  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 10.08.2014 09:13

Jeśli serwer masz na ścieżce:
/root/ZombieMod
To absolutnie nie uruchamiaj serwera... Bo pewnie mając go w katalogu root, uruchamiasz go również na użytkowniku root...

HLDS jest dziurawy jak ser szwajcarski i przy takim zabiegu wystarczy proste włamanie się na serwer (których pełno) i wrzucenie własnego pluginu i ktoś może uzyskać dostęp do całego Twojego serwera (VPSa, dedyka...) i robić z nim co chce. Dlatego uruchamiaj serwer na osobnym użytkowniku (najlepiej 1 serwer = 1 użytkownik), wtedy ktoś kto się włamie uzyska dostęp tylko do tego, co ten użytkownik posiada...

Co do błędu, wykonaj polecenie:
vim twoj_plik_ze_skryptem
gdy otworzy Ci się edytor wpisz
:set fileformat=unix
:wq
I po sprawie... Problemem tutaj są znaki końca linii. Skrypt pewnie tworzyłeś lub edytowałeś pod Windowsem, który używa innych końców linii, co doprowadza do błędów.
  • +
  • -
  • 3
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych