web-dev-qa-db-ja.com

tmuxで非常に長い出力を中断する

(gnome)ターミナルで、長すぎることが判明したファイルをcatした場合、いつでも押すことができます Ctrl-c 邪魔をして。

ただし、tmuxでは、同じことが発生すると、 Ctrl-c キーを押してサーバーに到達すると、それが発生するまで、サーバーはこの出力でビジー状態になり、フラッドを監視する(または別の端末を使用する)以外に何もできません。

これは、説明されている問題にいくぶん似ています ここ

ターミナル、サーバー、または特定のtmuxウィンドウ/ペインを再起動したくありません。 lessを使用するのは賢い習慣ですが、ここでは、賢くなり、行動する前に考えて回避する方法ではなく、すでに発生した問題を解決する方法について質問しています...常に驚きがあります!

それで、端末にフラッドを止めさせたり、送信されたデータを破棄させたりする方法はありますか?画面上の文字を見るこれらの煩わしいから自分を解放するために私ができることは何ですか?

8
Bach

2つの提案

  1. このような場合はめったにありません CTRL+z より効果的です CTRL+c:より速く答えます。その後、コマンドを一時停止すると、kill %1またはジョブ番号です。画面から何でも読むことができることを期待して(ランダムなバイナリテキストが氾濫すると、簡単に文字セットがめちゃくちゃになる可能性があります)。

  2. 別の端末では、pgrep catcatが呼び出されたコマンドの場合)、catプロセスがcpuまたはpstreeを使用していることを識別します。

    pgrep cat | awk '{print "pstree -sp "$1}' | sh | grep tmux

    次のような出力で答えます
    init(1)--- lightdm(1428)--- lightdm(2518)--- init(2534)---tmux(22425)--- bash(22426 )--- cat(22532

    この場合、killcatPIDを実行する必要があるだけです。
    kill 22532

注意:

  • を押すと CTRL+C または CTRL+z そして、ウィンドウを最小化した後、システムはおそらく割り込み要求を読み取るよりも速くなります。したがって、一時停止/中断、最小化、少し待って、再度最大化することも解決策となります。
  • あなたが言ったように、lessはより安全です。
  • Tmux 1.8で再度テストし、動作しています
4
Hastur

次の行をtmux.conf(〜/ .tmux.conf)に追加します

set -g c0-change-trigger 150 set -g c0-change-interval 100

詳細は http://blog.fraggod.net/2014/09/23/tmux-rate-limited-magic-against-terminal-spamflood-lock-ups.html にあります

2
jetole