¿Cómo puedo restablecer la numeración automática de nombres de sesión de tmux?

¿Cómo puedo restablecer la numeración automática de nombres de sesión de tmux?

Después de mantener presionado accidentalmente ctrl+alt+t, mis sesiones de tmux ahora se nombran automáticamente con números molestamente altos:

llama@llama:~$ tmux ls
124: 1 windows (created Mon Jan  5 16:45:55 2015) [80x24] (attached)

¿Cómo puedo restablecer este número a 1? Intenté tmux rename-sessioncambiar mi sesión a un número inferior, pero después de cerrarla y abrir una nueva sesión, la numeración se reanuda desde el número original.

¿Hay alguna forma de solucionar este problema sin reiniciar tmux?

Respuesta1

No, esto no es posible actualmente.

Lo único que puede hacer al respecto sin reiniciar el servidor es anular el nombre manualmente al crear una nueva sesión emitiendo tmux new -s 5, por ejemplo:

$ tmux new -d -P
10:
$ tmux ls
10: 1 windows (created Wed Jan  7 15:50:29 2015) [107x89]
$ tmux new -s 5 -d -P
5:
$ tmux ls
10: 1 windows (created Wed Jan  7 15:50:29 2015) [107x89]
5: 1 windows (created Wed Jan  7 15:50:40 2015) [107x89]
$ tmux new -s 5 -d -P
duplicate session: 5

El número de sesión automático se rige por la variable global u_int next_session_idensession.cal que no se puede acceder desde la línea de comando, como revela el código fuente.

tmux new-sessionllamasession_create()session.c(línea 88) y next_session_idse incrementa cada vez que crea una nueva sesión. Se utiliza el argumento de -sbandera para conjuntos new-session(cortos ) ; de lo contrario, se utiliza.newnamenext_session_id

     if (name != NULL) {
              s->name = xstrdup(name);
              s->id = next_session_id++;
     } else {
             s->name = NULL;
             do {
                     s->id = next_session_id++;
                     free(s->name);
                     xasprintf(&s->name, "%u", s->id);
             } while (RB_FIND(sessions, &sessions, s) != NULL);
     }

Respuesta2

intentar:

tmux kill-server && tmux

información relacionada