2011-12-27 11 views
28

O al menos parte de eso, tiene sentido.¿Cómo comienzo tmux con mi entorno actual?

Más específicamente, tengo algunas variables de entorno, que se han exportado ejecutando un script, para crear un entorno adecuado para la tarea en cuestión. Cuando ejecuto tmux, estas variables no se ven por ningún lado, ni en el entorno global ni en el de sesión. Por supuesto que puede ejecutar este script de nuevo, pero ...

Estaría satisfecho si pudiera especificar los VARs particulares en mi archivo .tmux.conf sin embargo:

set-environment VAR $VAR 

no hace lo que cabe esperar.

Gracias de antemano :)

Ah, creo que sé por qué.

Al iniciar una segunda sesión de tmux, por ejemplo, en otra terminal, copia el entorno de la primera. El primero prácticamente toma el entorno actual del intérprete de comandos y le agrega cierta timidez.

Mi solución actual es simplemente detener e iniciar mis sesiones de tmux cuando necesito cambiar el entorno.

+0

Gracias por el recordatorio George. – Phluks

+3

Hay una manera más fácil para lo que quiero lograr. Usando la opción '-L' (o '-S'). Estos inician un nuevo servidor con el entorno actual. Ex. 'tmux -L newenv' Cada encanto crea una nueva sesión en el servidor en ese socket, con el mismo entorno. (Puede elegir su propio nombre, por supuesto) 'tmux -L newenv list-sessions, Lista las sesiones en ese servidor en particular. ... Etc. – Phluks

Respuesta

54

Debe configurar tmux opción de sesión para incluir las variables que desea actualizar al crear sesiones nuevas. El valor por defecto incluye varias variables X11 y SSH comunes:

DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY 

Para añadir las variables, utilice el comando set-optiontmux con sus banderas -g y -a (se añade al valor existente “global” (por defecto)). En su ~/.tmux.conf:

set-option -ga update-environment ' YOUR_VAR' 

Asegúrese de incluir el espacio inicial para que su nombre de la variable se separa del nombre de arrastre en el valor predeterminado.

+0

Excelente respuesta. Gracias. – Phluks

+3

Gran respuesta. Una nota: el archivo ~/.tmux.conf no se leerá cuando el servidor tmux ya se esté ejecutando, por lo que los cambios como este no tendrán efecto. Esperaba que se leyera durante 'tmux attach-session', pero no se aplicó. – Wade

+0

Perdón por resucitar esto, pero la página man dice "La opción de sesión de actualización de entorno se puede usar para actualizar el entorno de sesión del cliente cuando se crea una nueva sesión o se vuelve a conectar una antigua". Esto sugiere que debería actualizarlos cuando vuelva a conectar a _existing_ sesiones, pero parece que no. ¿Algunas ideas? – sjbx

Cuestiones relacionadas