Wéi Host Multiple Linux Terminals fir ze kucken an Zesummenaarbecht mat Wemux


An engem fréieren Artikel hu mir erkläert wéi Dir tmux benotzt, (Terminal MUltipleXer), fir Zougang zu enger Zuel vun Terminaler (oder Fënsteren) vun engem eenzegen Terminal ze kréien an ze kontrolléieren.

Elo wäerte mir Iech op wemux virstellen (eng Multi-User Versioun vun tmux), déi net nëmmen d'Features vun tmux enthält, awer och d'Benotzer erlaabt e Multi-Terminal Ëmfeld ze hosten, wou d'Clientë sech an de View- oder Kollaboratiounsmodus kënne verbannen.

An anere Wierder, Dir kënnt eng Sessioun hosten wou anerer kënne kucken wat Dir am Terminal maacht (fir eng Demonstratioun ze maachen, zum Beispill), oder mat hinnen ze kollaboréieren.

Fir Iech ze hëllefen dat Bescht vu wemux ze kréien, ech recommandéieren Iech de fréiere Guide iwwer tmux ze kucken ier Dir duerch dësen Artikel gitt.

Wemux Multi-User Terminal installéieren an konfiguréieren

Als Viraussetzung ier Dir wemux installéiere wäerte mir git benotze fir de Repository vum Projet an eisem lokalen System ze klonen. Wann de folgende Kommando weist datt git net an Ärem System fonnt gëtt:

# which git 

wéi uginn vun:

/usr/bin/which: no git in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) 

Installéiert et ier Dir weidergeet (benotzt Yum oder Aptitude ofhängeg vun Ärer Verdeelung):

# yum install git       [On RedHat based systems] 
# dnf install git       [On Fedora 22+ versions]
# aptitude install git  [On Debian based systems]

Dann,

1. Klon de Remote Repository.

# git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux 

2. Erstellt e symbolesche Link op de wemux ausführbar bannent /usr/local/bin oder engem anere Verzeechnes an Ärer PATH Variabel.

# ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux 

3. Kopéiert d'Konfiguratiounsprobe Konfiguratiounsdatei an /usr/local/etc.

# cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf 

A setzt déi folgend Zeil an:

host_list=(user1 user2 user3) 

wou user1, user2, an user3 Benotzer sinn, déi erlaabt sinn wemux-Server ze starten. Dir kënnt esou vill Benotzer addéieren wéi néideg, getrennt vu Plazen. Aner Benotzer kënne mat engem lafende wemux Server konnektéieren, awer däerfen net een ufänken.

Aféierung wemux Multi-User Terminal

Fir d'Saachen ze vereinfachen, bedenk w.e.g. datt Dir un wemux als Tool denke kënnt, deen d'Konsole kucken a géigesäiteg Zesummenaarbecht op der selwechter tmux-Sessioun erliichtert.

Wéi virdru erkläert, musst Dir an der Konfiguratiounsdatei (/usr/local/etc/wemux.conf) schonn uginn hunn, wéi eng Benotzer e wemux-Server starten dierfen, oder an anere Wierder, e tmux Sessioun, déi aner Benotzer kënnen uschléissen. An dësem Kontext ginn dës Benotzer Clienten genannt.

Ze resuméieren:

  1. Wemux Server: eng tmux Sessioun.
  2. Wemux Clienten: Benotzer déi un der tmux Sessioun ugeschriwwe sinn.

Dëst sinn d'Befehle déi benotzt gi fir wemux Serveren ze managen:

  1. wemux or wemux start: starts a new wemux server (if none exists; otherwise creates a new one) and creates a socket in /tmp/wemux-wemux whose permissions need to be set to 1777 so that other users may connect or attach to it:
  2. # chmod 1777 /tmp/wemux-wemux 
    
  3. wemux attach hooks you up to an existing wemux server.
  4. wemux stop kills the wemux server and removes the socket created earlier. This command needs to be executed from a separate terminal. Alternatively, you can use the exit shell builtin to close panes and eventually to return to your regular shell session.
  5. wemux kick username gets rid of the user currently logged on via SSH from the wemux server and removes his / her rogue sessions (more on this in a minute). This command requires that the wemux server has been started as root or with sudo privileges.
  6. wemux config opens the configuration file in the text editor indicated by the environment variable $EDITOR (only if such variable is configured in your system, which you can verify with echo $EDITOR).

All tmux Kommandoen, déi virdru opgezielt sinn, sinn valabel bannent wemux, mam Virdeel datt de Client un e wemux Server an engem vun dräi Modi ugeschloss kann.

Fir dat ze maachen, fuert de Kommando aus, deen an der COMMAND Kolonn ënnendrënner an engem potenziellen Client fonnt gëtt, souzesoen (et gëtt en aktuellen Client wann en um wemux Server ugeschloss ass):

Loosst eis de folgende Screencast kucken fir eng kuerz Demonstratioun vun den dräi Clientsmodi, déi an der Tabell uewe beschriwwe sinn (selwecht Uerdnung). Notéiert w.e.g. datt ech Terminator benotzt hunn fir de Server (als Benotzer gacanepa) an der lénker Fënster ze starten an e Client (als Benotzertest) an der rietser Fënster ze verbannen.

Sou kënnt Dir einfach gesinn wéi e wemux Server funktionnéiert wärend Dir mat engem Client interagéiert. Andeems Dir de Prozess widderhëlt, dee vun engem Client benotzt gëtt fir e wemux Server matzemaachen, kënnt Dir verschidde Cliente gläichzäiteg maachen.

Aner Features vum wemux Terminal

Wann déi uewe genannte Paragrafen Iech net genuch Grënn ginn fir wemux ze probéieren, hoffentlech wäerten déi folgend Funktiounen Iech iwwerzeegen.

Benotzer déi erlaabt sinn wemux Serveren unzefänken (wéi pro Host_list Direktiv an /usr/local/etc/wemux.conf Datei) kënne verschidde Sessiounen gläichzäiteg hosten wann d'allow_server_change Direktiv op richteg gesat ass:

allow_server_change="true"

Fir zwou Sessiounen mam Numm la an emea ze starten, fuert déi folgend Kommandoen an zwee verschiddenen Terminals aus:

# wemux join la && wemux start
# wemux join emea && wemux start

Erëm wäerte mir den Terminator benotze fir déi zwee Terminaler zur selwechter Zäit ze gesinn (dëst ass ähnlech wéi Dir kënnt erwaarden andeems Dir op verschidde Konsolen mat Ctrl + Alt + F1 bis F7 wiesselt):

Nodeems Dir op Enter dréckt, gi béid Sessiounen separat gestart:

Da kënnt Dir e Client an entweder Sessioun matmaachen mat:

# wemux join la && wemux attach
Or
# wemux join emea && wemux attach

Schlussendlech, fir e Fernbenotzer ze hunn (verbindt iwwer SSH) automatesch op wemux nom Login unzefänken an se vum Server ze trennen wann se ofhuelen, fügen d'folgend Strof op seng ~/.bash_profile Datei:

wemux [mode]; exit

wou [Modus] ee vun de Client Modi ass, déi virdru opgelëscht sinn.
Alternativ kann e Client vun engem Server op en aneren wiesselen mat:

# exit
# wemux join [server name here] && wemux [mode]

Resumé

An dësem Artikel hu mir erkläert wéi een wemux benotze fir Remote Viewing vun Ärem Terminal (a souguer géigesäiteg Zesummenaarbecht) ganz einfach opzestellen. Verëffentlechung ënner der MIT Lizenz, wemux ass Open Source Software an Dir kënnt se weider no Äre Besoinen personaliséieren.

De Quellcode gëtt an wemux Github fonnt a verfügbar an Ärem System an /usr/local/bin/wemux. Am selwechte Github Repository kënnt Dir méi Informatioun iwwer dëse Programm fannen.

Hutt Dir dëse Post nëtzlech fonnt? Loosst eis w.e.g. wëssen wat Dir mengt andeems Dir de Formulaire hei drënner benotzt.

Referenz: https://github.com/zolrath/wemux