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_idsession.cソース コードを grep するとわかるように、コマンド ラインからはアクセスできません。

tmux new-session電話session_create()をかけるsession.c(行 88) であり、新しいセッションを作成するたびに増加します。 flagの(short )へnext_session_idの引数はを設定し、それ以外の場合は が使用されます。-snew-sessionnewnamenext_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

関連情報