Как сбросить автоматическую нумерацию имен сеансов tmux?

Как сбросить автоматическую нумерацию имен сеансов tmux?

После случайного нажатия ctrl+alt+t мои сеансы tmux теперь автоматически именуются раздражающе высокими числами:

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

Как мне сбросить этот номер на 1? Я пробовал tmux rename-sessionизменить номер сеанса на меньший, но после его закрытия и открытия нового сеанса нумерация возобновляется с исходного номера.

Есть ли способ исправить это без перезапуска tmux?

решение1

Нет, в настоящее время это невозможно.

Единственное, что вы можете сделать с этим, не перезапуская сервер, — это вручную переопределить имя при создании нового сеанса, выполнив tmux new -s 5, например:

$ 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

Автоматический номер сеанса регулируется глобальной переменной u_int next_session_idвsession.cк которому невозможно получить доступ из командной строки, как показывает анализ исходного кода.

tmux new-sessionзвонит session_create()вsession.c(строка 88) и next_session_idувеличивается всякий раз, когда вы создаете новый сеанс. Аргумент -sflag to new-session(short new) устанавливает name, в противном случае next_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);
     }

решение2

пытаться:

tmux kill-server && tmux

Связанный контент