Zoeken op website

Hoe u meerdere Linux-terminals kunt hosten voor weergave en samenwerking met Wemux


In een vorig artikel hebben we uitgelegd hoe u tmux (Terminal MULTIPLEXer) kunt gebruiken om toegang te krijgen tot en controle uit te oefenen op een aantal terminals (of vensters) vanaf één enkele terminal.

Nu laten we je kennismaken met wemux (een versie voor meerdere gebruikers van tmux), die niet alleen de functies van tmux bevat, maar ook stelt gebruikers in staat een omgeving met meerdere terminals te hosten waar klanten kunnen deelnemen in de kijk- of samenwerkingsmodus.

Met andere woorden, u kunt een sessie hosten waarin anderen kunnen zien wat u in de terminal doet (bijvoorbeeld om een demonstratie uit te voeren) of om met hen samen te werken.

Om u te helpen het meeste uit wemux te halen, raad ik u ten zeerste aan de vorige gids over tmux te lezen voordat u dit artikel doorneemt.

Installeren en configureren van de Wemux-terminal voor meerdere gebruikers

Als voorwaarde voordat we wemux installeren, zullen we git gebruiken om de repository van het project in ons lokale systeem te klonen. Als uit het volgende commando blijkt dat git niet in je systeem wordt gevonden:

which git 

zoals aangegeven door:

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

Installeer het voordat u doorgaat (gebruik yum of aptitude afhankelijk van uw distributie):

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

Dan,

1. Kloon de externe opslagplaats.

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

2. Maak een symbolische link naar het wemux uitvoerbare bestand in /usr/local/bin of een andere map in uw ` PATH variabele.

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

3. Kopieer het configuratievoorbeeldbestand naar /usr/local/etc.

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

En plaats de volgende regel:

host_list=(user1 user2 user3) 

waarbij user1, user2 en user3 gebruikers zijn die wemux-servers mogen starten. U kunt zoveel gebruikers toevoegen als nodig is, gescheiden door spaties. Andere gebruikers kunnen verbinding maken met een actieve wemux-server, maar mogen er geen starten.

Introductie van de wemux multi-user terminal

Om de zaken te vereenvoudigen, moet u er rekening mee houden dat u wemux kunt zien als een hulpmiddel dat consoleweergave en onderlinge samenwerking tijdens dezelfde tmux-sessie mogelijk maakt.

Zoals eerder uitgelegd, moet u in het configuratiebestand (/usr/local/etc/wemux.conf) al hebben aangegeven welke gebruikers een wemux-server mogen starten , of met andere woorden, een tmux-sessie waaraan andere gebruikers zich kunnen hechten. In deze context worden deze “gebruikers” klanten genoemd.

Samenvatten:

  1. Wemux-server: een tmux-sessie.
  2. Wemux-klanten: gebruikers die deelnemen aan de hierboven beschreven tmux-sessie.

Dit zijn de opdrachten die worden gebruikt om wemux-servers te beheren:

  1. wemux of wemux start: start een nieuwe wemux-server (als deze niet bestaat; anders wordt er een nieuwe gemaakt) en wordt een socket gemaakt in /tmp/wemux-wemux waarvan de rechten moeten worden ingesteld op 1777 zodat andere gebruikers er verbinding mee kunnen maken:
  2. chmod 1777 /tmp/wemux-wemux 
    
  3. wemux Attach koppelt u aan een bestaande Wemux-server.
  4. wemux stop doodt de wemux-server en verwijdert de eerder gemaakte socket. Deze opdracht moet vanaf een aparte terminal worden uitgevoerd. Als alternatief kunt u de ingebouwde exit-shell gebruiken om vensters te sluiten en uiteindelijk terug te keren naar uw normale shell-sessie.
  5. wemux kick gebruikersnaam verwijdert de gebruiker die momenteel is aangemeld via SSH van de wemux-server en verwijdert zijn/haar malafide sessies (hierover later meer). Voor deze opdracht is vereist dat de wemux-server is gestart als root of met sudo-rechten.
  6. wemux config opent het configuratiebestand in de teksteditor aangegeven door de omgevingsvariabele $EDITOR (alleen als een dergelijke variabele in uw systeem is geconfigureerd, wat u kunt verifiëren met echo $EDITOR ).

Alle eerder genoemde tmux-opdrachten zijn geldig binnen wemux, met als voordeel dat de client zich in een van de drie modi kan verbinden met een wemux-server .

Om dit te doen, voert u de opdracht uit de kolom COMMAND hieronder uit in een “potentiële klant“, om zo te zeggen (deze wordt een daadwerkelijke klant zodra deze zich bij de wemux heeft aangesloten server):

Mode Description Commands
Mirror Read-only, non-interactive wemux mirror
Pair Interactive, client shares cursor with the server wemux pair
Rogue Joins an existing session but allows the client to uses independent windows wemux rogue

Laten we eens kijken naar de volgende screencast voor een korte demonstratie van de drie clientmodi die in de bovenstaande tabel worden beschreven (dezelfde volgorde). Houd er rekening mee dat ik Terminator heb gebruikt om de server (als gebruiker gacanepa) in het linkerdeelvenster te starten en een client (als gebruikerstest) in het rechterdeelvenster aan te sluiten.

Zo kunt u eenvoudig zien hoe een wemux-server werkt tijdens interactie met één client. Door het proces te herhalen dat door een client wordt gebruikt om lid te worden van een wemux-server, kunt u meerdere clients tegelijkertijd hetzelfde laten doen.

Andere kenmerken van wemux Terminal

Als de bovenstaande paragrafen je niet genoeg redenen hebben gegeven om wemux eens te proberen, zullen de volgende functies je hopelijk overtuigen.

Gebruikers die toestemming hebben om wemux servers te starten (volgens de host_list richtlijn in het /usr/local/etc/wemux.conf bestand) kunnen hosten meerdere sessies tegelijk als de allow_server_change richtlijn is ingesteld op true:

allow_server_change="true"

Om twee sessies genaamd la en emea te starten, voert u de volgende opdrachten uit in twee verschillende terminals:

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

Nogmaals, we zullen Terminator gebruiken om de twee terminals tegelijkertijd te bekijken (dit is vergelijkbaar met wat je zou verwachten als je naar verschillende consoles overschakelt met Ctrl+Alt+F1 via F7):

Nadat u op Enter heeft gedrukt, worden beide sessies afzonderlijk gestart:

Vervolgens kunt u een cliënt aan een van beide sessies laten deelnemen met:

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

Tenslotte, om een externe gebruiker (die verbinding maakt via SSH) automatisch op wemux te laten starten na het inloggen en de verbinding met de server te verbreken wanneer deze wordt losgekoppeld, voegt u de volgregel toe aan het ~/.bash_profile bestand:

wemux [mode]; exit

waarbij [mode] een van de eerder genoemde clientmodi is.
Als alternatief kan een client van de ene server naar de andere overschakelen met behulp van:

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

Samenvatting

In dit artikel hebben we uitgelegd hoe u wemux kunt gebruiken om heel eenvoudig externe weergave van uw terminal (en zelfs onderlinge samenwerking) in te stellen. Wemux wordt uitgebracht onder de MIT-licentie en is open source-software die u verder kunt aanpassen aan uw behoeften.

De broncode is te vinden in wemux Github en beschikbaar in uw systeem in /usr/local/bin/wemux. In dezelfde Github-repository kun je meer informatie over dit programma vinden.

Vond je dit bericht nuttig? Laat ons via onderstaand formulier weten wat u ervan vindt.