Hej, chciałbym wam przedstawić narzędzie Tmux czyli alternatywę dla aplikacji Screen.
I. Co to jest?
Tak więc tak samo, jak Screen, Tmux to narzędzie umożliwiające tworzenie wirtualnych terminali, które po rozłączeniu z ssh może nadal działać w tle i np. utrzymywać serwer gry przez 24 godziny na dobę. Kolejną zaletą wirtualnych terminali jest łatwość przełączania się między różnymi aplikacjami w jednym terminalu.
II. Instalacja Tmuxa:
Ubuntu / Debian
sudo apt update
sudo apt install tmuxCentOS / Fedora
yum check-update
yum update
sudo yum install tmuxW przypadku konta root nie trzeba pisać sudo.
III. Przydatne komendy:
W tej sekcji znajdziesz wszystkie potrzebne ci polecenia, do pracy z wirtualnymi terminalami.
a) Tworzenie wirtualnego terminala/sesji
tmuxTworzy nową sesję i od razu uruchamia okno wirtualnego terminala. Wówczas możemy od razu zacząć na nim pracować.
tmux new -s nazwaRobi dokładnie to samo, ale przy okazji daje nam możliwość ustawienia własnej nazwy. Wystarczy zastąpić nazwa swoją nawą np. serwer-minecraft.
A tak wygląda przykładowy wirtualny terminal, na dole jest widoczny zielony pasek, na którym widać na przykład nazwe sesji (test).

b) Jak wyjść z wirtualnego terminala?
Wychodzenie z sesji (będzie on działać w tle)
- Należy kliknąć "Ctrl + B" następnie kliknąć "D".Wychodzenie z sesji oraz przerwanie jej działania (nie będzie działać w tle)
- Należy kliknąć "Ctrl + B" następnie kliknąć "X" po czym potwierdzić wpisując "Y".c) Powrót do wcześniej utworzonej sesji
Najpierw wpisujemy
tmux lsWyświetli nam się lista naszych sesji przykład:
W tym przykładzie są trzy sesje o nazwach: 0, serwer-minecraft oraz serwer-minecraft2.
Żeby powrócić do sesji np. serwer-minecraft należy wpisać:
tmux a -t serwer-minecraftd) Zamykanie wszystkich sesji Tmuxa:
Czasem może nam się przydać komenda zamykająca wszystkie uruchomione sesji. Dlatego postanowiłem ją tutaj zamieścić.
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs killIV. Praca z oknami oraz ich podziałem:
W Tmuxie można zarówno stworzyć kilka okien (windows) w sesji, jak i można podzielić jedno okno na kilka (panes).
Lista dostępnych skrótów, każdy skrót poprzedzaj kliknięciem Ctrl+B, a następnie po puszczeniu klawiszy kliknij odpowiedni skrót:
-
Sesje (session)
:new- nowa sesjas- lista sesji$- nazwa sesji (można ją tutaj wyświetlić a także zmienić)
-
Okna (windows)
c- tworzenie kolejnego oknaw- lista okienn- następne oknop- poprzednie oknof- szukanie okna,- nazwa okna (można ją tutaj wyświetlić a także zmienić)&- zamknięcie okna
-
Podział okien (panes):
%- podział wertykalny (lewo-prawo)"- podział horyzontalny (góra-dół)o- przełącz się między paneq- pokaż numer panex- zamknij pane+- usunięcie pane do okna-- przywrócenie pane z oknaspacja- zmiana rodzaju podziału okien (wertykalnie/horyzontalnie)q- pokazuje numery pane, w momencie gdy są widoczne można kliknąć numer i się do niego przenieść.{- przeniesienie z aktualnego pane do następnego po lewej/na dole}- przeniesienie z aktualnego pane do następnego po prawej/na górzez- przełączanie widoku pane (czy ma być widoczny)
V. Uruchamianie serwera Minecraft w Tmuxie:
Tworzymy nową sesje o nazwie np. serwer-mc:
tmux new -s serwer-mcW sesji wchodzimy do folderu z serwerem a następnie wpisujemy polecenie którym uruchamiamy serwer:
cd serwer-minecraft
java -Xmx1024M -Xms1024M -jar minecraft_server.jar noguiPo wszystkim wystarczy opuścić sesje:
Klikamy "CTRL + B" a potem klikamy "D".
Gotowe 😄.
W tym przypadku przydzieliłem na serwer 1GB ramu.
A mój silnik ma nazwę minecraft_server.jar.
W przypadku innych serwerów np. TeamSpeak 3 wygląda to podobnie, po prostu jest inne polecenie startowe.
VI. Kilka słów na koniec
Jeżeli czegoś brakuje, napiszcie na pw lub pod tematem, to dodam/poprawie informacje. Chciałem napisać jeszcze różnice między Screenem a Tmuxem, ale żadnych większych różnic nie znalazłem i stwierdziłem, że nie warto w ogóle o tym pisać, chyba że chcecie, to coś dopiszę.
Główne źródła: https://linuxize.com/post/getting-started-with-tmux/ https://gist.github.com/MohamedAlaa/2961058