Cómo alojar múltiples terminales Linux para visualización y colaboración con Wemux


En un artículo anterior, explicamos cómo usar tmux, (Terminal MUltipleXer), para acceder y controlar una serie de terminales (o ventanas) desde un solo terminal.

Ahora le presentaremos wemux (una versión multiusuario de tmux), que no solo incluye las funciones proporcionadas por tmux, sino que también permite a los usuarios alojar un entorno de múltiples terminales donde los clientes pueden unirse en modo de visualización o colaborativo.

En otras palabras, puede albergar una sesión donde otros puedan ver lo que hace en la terminal (para realizar una demostración, por ejemplo), o para colaborar con ellos.

Para ayudarlo a aprovechar al máximo wemux, le recomiendo que lea la guía anterior sobre tmux antes de leer el presente artículo.

Instalación y configuración de la terminal multiusuario de Wemux

Como requisito previo antes de instalar wemux, usaremos git para clonar el repositorio del proyecto en nuestro sistema local. Si el siguiente comando muestra que git no se encuentra en su sistema:

# which git 

como lo indica:

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

Instálelo antes de continuar (use yum o aptitude dependiendo de su distribución):

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

Luego,

1. Clone el repositorio remoto.

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

2. Cree un enlace simbólico al ejecutable wemux dentro de /usr/local/bin u otro directorio en su/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl variable.

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

3. Copie el archivo de configuración de muestra de configuración en /usr/local/etc .

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

E inserte la siguiente línea:

host_list=(user1 user2 user3) 

donde usuario1 , usuario2 y usuario3 son usuarios que pueden iniciar servidores wemux. Puede agregar tantos usuarios como necesite separados por espacios. Otros usuarios podrán conectarse a un servidor wemux en ejecución, pero no podrán iniciar uno.

Presentamos la terminal multiusuario wemux

Para simplificar las cosas, tenga en cuenta que puede pensar en wemux como una herramienta que facilita la visualización de la consola y la colaboración mutua en la misma sesión tmux.

Como se explicó anteriormente, en el archivo de configuración ( /usr/local/etc/wemux.conf ), ya debe haber indicado a qué usuarios se les permitirá iniciar un servidor wemux, o en otras palabras, un tmux a la que otros usuarios podrán conectarse. En este contexto, estos "usuarios" se denominan clientes.

Para resumir:

  1. Wemux server: a tmux session.
  2. Wemux clients: users joining the tmux session described above.

Estos son los comandos que se utilizan para administrar servidores wemux:

  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).

Todos los comandos tmux enumerados anteriormente son válidos dentro de wemux, con la ventaja de que el cliente puede conectarse a un servidor wemux en uno de tres modos.

Para hacerlo, ejecute el comando que se encuentra en la columna COMANDO a continuación en un "cliente potencial", por así decirlo (se convertirá en un cliente real una vez que se haya unido al servidor wemux):

Echemos un vistazo al siguiente screencast para ver una breve demostración de los tres modos de cliente descritos en la tabla anterior (mismo orden). Tenga en cuenta que utilicé Terminator para iniciar el servidor (como usuario gacanepa) en el panel izquierdo y conectar un cliente (como prueba de usuario) en el panel derecho.

Por lo tanto, puede ver fácilmente cómo funciona un servidor wemux mientras interactúa con un cliente. Al repetir el proceso que utiliza un cliente para unirse a un servidor wemux, puede hacer que varios clientes hagan lo mismo simultáneamente.

Otras características de la terminal wemux

Si los párrafos anteriores no le dieron suficientes razones para probar wemux, es de esperar que las siguientes características lo convenzan.

Los usuarios que pueden iniciar servidores wemux (según la directiva host_list en el archivo /usr/local/etc/wemux.conf ) pueden albergar varias sesiones simultáneamente si la directiva allow_server_change se establece en true:

allow_server_change="true"

Para iniciar dos sesiones llamadas la y emea, ejecute los siguientes comandos en dos terminales diferentes:

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

Nuevamente, usaremos Terminator para ver los dos terminales al mismo tiempo (esto es similar a lo que podría esperar al cambiar a diferentes consolas con Ctrl + Alt + F1 a F7):

Después de presionar Enter, ambas sesiones se inician por separado:

Entonces puede hacer que un cliente se una a cualquiera de las sesiones con:

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

Finalmente, para que un usuario remoto (que se conecta a través de SSH) se inicie automáticamente en wemux después de iniciar sesión y lo desconecte del servidor cuando se desconecta, agregue la siguiente estrofa a su archivo ~/.bash_profile :

wemux [mode]; exit

Alternativamente, un cliente puede cambiar de un servidor a otro usando:

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

Resumen

En este artículo hemos explicado cómo usar wemux para configurar la visualización remota de su terminal (e incluso la colaboración mutua) de manera muy sencilla. Al ser lanzado bajo la licencia MIT, wemux es un software de código abierto y puede personalizarlo aún más de acuerdo a sus necesidades.

El código fuente se encuentra en wemux Github y está disponible en su sistema en/usr/local/bin/wemux. En el mismo repositorio de Github puedes encontrar más información sobre este programa.

¿Te resultó útil esta publicación? Háganos saber lo que piensa utilizando el formulario a continuación.

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