web-dev-qa-db-ja.com

tmux:ハングしてロードされず、オプションコマンドに応答しない

Fedoraのローカルスペースにソースからtmuxをインストールしました。これまでのところうまくいきました。しかし、突然実行できなくなり、tmuxを実行すると停止します。 ls-sessionsなどのさまざまなコマンドオプションを試しましたが、どれも機能しません。ユーザーのすべてのプロセスを終了し、tmuxとlibevnetのすべてのファイルを削除して、それらを最初から再インストールしました。それでも同じで、ターミナルのtmuxコマンドは実際のエラーなしでフリーズします。

30
memimo

ありがとう。問題が見つかりました。 tmuxプロセスはD状態であり、システムを再起動するしかありませんでした。問題は、ケルベロスのチケットがしばらくして期限切れになることにありました。そして、この問題を解決するスクリプトを見つけます: https://iain.cx/src/ktmux/

2
memimo

私は長い間この問題に直面していましたが、少し調べた結果、これは誤ってヒットしたことが原因であることがわかりました Ctrl+SCtrl+A+S ペインを切り替えるための私のショートカットです)。これにより、ターミナルのフロー制御がオフになり、ターミナルが入力を受け入れなくなります。押すことで再度有効にできます Ctrl+Q

出典:https://superuser.com/a/553349/137226

42
Hashken

同様の問題があり、2つのバッファを使用したtmuxセッションがありました。入力したものは何も表示されませんでしたが、バッファを切り替えると、以前に入力したものが画面に表示されました。 stty saneは機能しませんでした。

離れた Ctrl-b+d、[tmux list-clients]を見ると、まだクライアントが接続されていることに気付きました。 tmux detach-clientはそれを削除しました。その後、再接続でき、すべてが再び機能しました。

28
dsummersl

tmuxは起動した直後に停止していました。 Ctrl-Q そして Ctrl-C 何もしませんでした。

で修正

killall -9 tmux

(別の問題である可能性がありますが、この質問はGoogleに表示されました。)

5
guaka

セッションを失ってもよい場合は、tmux-NNNNNNNディレクトリの下にある/tmpディレクトリ(NNNNNNNは数字)を削除してみてください。 tmuxマニュアルによると、TMPDIR環境変数が設定されている場合、tmux-NNNNNNNTMPDIRに配置されます。

tmuxは、サーバーソケットを/ tmp(または、設定されている場合はTMPDIR)の下のディレクトリに格納します。

これは、セッションに関連するtmuxコマンドを実行できないという私の問題を解決しました。私も以下を試しましたが、うまくいきませんでした:

  • killall -9 tmux
  • 再インストールtmux
  • シェルセッションを再起動する

オペレーティングシステムは他のユーザーが管理する共有サーバーであるため、簡単に再起動できませんでした。

4
Logstar

同じ問題がありました。原因は、tmuxバッファーがいっぱいであり、tmuxセッションへのマルチクライアントの原因でもある可能性があります。

それを解決するには、すべてのクライアントをセッションから切り離し、再接続する必要があります。

私がそれを解決するために見つけた最良の方法は、~/.bashrcファイルにこの関数を追加することです:

check_params() {
       if [[ $1 < $2 ]]; then
               echo -e "Usage:\n${3}"
               ok=0
       else
               ok=1
       fi

}

# detach all the clients from this session, and attach to it.
reattach_client() {
       check_params $# 1 "reattach_client <tmux_session_name>"
       if [[ $ok == 1 ]]; then
               tmux list-client | grep $1 | awk '{split($1, s, ":"); print s[1]}' | xargs tmux detach-client -t | true
               tmux attach -t $1
       fi
}

次にsource ~/.bashrcを実行して、ターミナルでこれらの変更を行います。

次に、セッションタイプをアタッチします。

reattach_client <session_name>

私の問題を解決しました。

これを手伝ってくれたAlex Zelichenkoに感謝します!

3
Rea Haas

これらのテストのいくつかで問題を少し絞り込むことができるはずです。

  1. X11の外側から試してみます。 Ctrl+Alt+F2 (または別のコンピューターからsshを使用)

  2. 他の端末エミュレータが機能するかどうかをテストします:scriptおよびscreen

  3. 別の複雑な端末アプリケーションを試してください:htopおよびmc

  4. TTY設定をリセットします:stty sane

  5. 端末が識別されていることを確認してください:echo $TERM(「xterm」または「linux」のようなものにする必要があります)

  6. 端末機能ファイルが存在することを確認してください:ls -lh /usr/share/terminfo/*/$TERM

2
Dan Cecile

(tmuxプロセスを強制終了する前に試す)それほど思い切っていないアクションは、マシンにsshして次のコマンドを実行することです。

kill -CONT `pidof tmux`

ソース: https://github.com/tmux/tmux/issues/507#issuecomment-27150209

1
Garrett