Fedoraのローカルスペースにソースからtmuxをインストールしました。これまでのところうまくいきました。しかし、突然実行できなくなり、tmuxを実行すると停止します。 ls-sessionsなどのさまざまなコマンドオプションを試しましたが、どれも機能しません。ユーザーのすべてのプロセスを終了し、tmuxとlibevnet
のすべてのファイルを削除して、それらを最初から再インストールしました。それでも同じで、ターミナルのtmuxコマンドは実際のエラーなしでフリーズします。
ありがとう。問題が見つかりました。 tmuxプロセスはD状態であり、システムを再起動するしかありませんでした。問題は、ケルベロスのチケットがしばらくして期限切れになることにありました。そして、この問題を解決するスクリプトを見つけます: https://iain.cx/src/ktmux/
私は長い間この問題に直面していましたが、少し調べた結果、これは誤ってヒットしたことが原因であることがわかりました Ctrl+S (Ctrl+A+S ペインを切り替えるための私のショートカットです)。これにより、ターミナルのフロー制御がオフになり、ターミナルが入力を受け入れなくなります。押すことで再度有効にできます Ctrl+Q。
同様の問題があり、2つのバッファを使用したtmuxセッションがありました。入力したものは何も表示されませんでしたが、バッファを切り替えると、以前に入力したものが画面に表示されました。 stty sane
は機能しませんでした。
離れた Ctrl-b+d、[tmux list-clients
]を見ると、まだクライアントが接続されていることに気付きました。 tmux detach-client
はそれを削除しました。その後、再接続でき、すべてが再び機能しました。
tmux
は起動した直後に停止していました。 Ctrl-Q そして Ctrl-C 何もしませんでした。
で修正
killall -9 tmux
(別の問題である可能性がありますが、この質問はGoogleに表示されました。)
セッションを失ってもよい場合は、tmux-NNNNNNN
ディレクトリの下にある/tmp
ディレクトリ(NNNNNNN
は数字)を削除してみてください。 tmux
マニュアルによると、TMPDIR
環境変数が設定されている場合、tmux-NNNNNNN
はTMPDIR
に配置されます。
tmuxは、サーバーソケットを/ tmp(または、設定されている場合はTMPDIR)の下のディレクトリに格納します。
これは、セッションに関連するtmux
コマンドを実行できないという私の問題を解決しました。私も以下を試しましたが、うまくいきませんでした:
killall -9 tmux
tmux
オペレーティングシステムは他のユーザーが管理する共有サーバーであるため、簡単に再起動できませんでした。
同じ問題がありました。原因は、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に感謝します!
これらのテストのいくつかで問題を少し絞り込むことができるはずです。
X11の外側から試してみます。 Ctrl+Alt+F2 (または別のコンピューターからssh
を使用)
他の端末エミュレータが機能するかどうかをテストします:script
およびscreen
別の複雑な端末アプリケーションを試してください:htop
およびmc
TTY設定をリセットします:stty sane
端末が識別されていることを確認してください:echo $TERM
(「xterm」または「linux」のようなものにする必要があります)
端末機能ファイルが存在することを確認してください:ls -lh /usr/share/terminfo/*/$TERM
(tmuxプロセスを強制終了する前に試す)それほど思い切っていないアクションは、マシンにsshして次のコマンドを実行することです。
kill -CONT `pidof tmux`
ソース: https://github.com/tmux/tmux/issues/507#issuecomment-27150209