Wenn sich in einem (Gnome-)Terminal cat
herausstellt, dass eine Datei viel zu lang ist, kann ich immer zum Unterbrechen die Ctrl- Taste drücken c.
Wenn jedoch tmux
dasselbe passiert, dauert es lange, bis das durch Drücken der Ctrl- cTaste erzeugte Signal den Server erreicht, und bis dies geschieht, ist der Server mit dieser Ausgabe beschäftigt, und ich kann nichts anderes tun, als die Flut zu beobachten (oder ein anderes Terminal zu verwenden).
Dies ähnelt in gewisser Weise dem beschriebenen ProblemHier.
Ich möchte weder das Terminal noch den Server oder sogar das jeweilige tmux
Fenster/den jeweiligen Bereich neu starten. Die Verwendung less
ist eine gute Angewohnheit, aber ich frage hier, wie man bereits aufgetretene Probleme löst, und nicht, wie man klug vorgeht und sie vermeidet, indem man nachdenkt und dann handelt … es wird immer Überraschungen geben!
Gibt es also eine Möglichkeit, das Terminal die Fluten stoppen zu lassen, die gesendeten Daten zu verwerfen usw.? Kann ich irgendetwas tun, um mich von diesen lästigenProtokollCharaktere auf meinem Bildschirm zu beobachten?
Antwort1
Zwei Vorschläge
In solchen Fällen ist CTRL+ selten z effektiver als CTRL+ c: es antwortet schneller. Danach pausiert man den Befehl und kann ihn mit
kill %1
oder der Auftragsnummer beenden. In der Hoffnung, dass man noch etwas vom Bildschirm lesen kann (eine Flut zufälliger Binärtexte kann den Zeichensatz leicht durcheinanderbringen).In einem anderen Terminal können Sie fragen
pgrep cat
(obcat
der Befehl aufgerufen wurde) und identifizieren, welchercat
Prozess IhreCPUoder vonpstree
:pgrep cat | awk '{print "pstree -sp "$1}' | sh | grep tmux
antworte mit einer Ausgabe wie
init(1)---lightdm(1428)---lightdm(2518)---init(2534)---tmux(22425)---bash(22426)---Katze(22532)kill
In diesem Fall müssen Sie danach nur noch Folgendes tuncat
PID
:
kill 22532
Notiz:
- Wenn Sie CTRL+ Coder CTRL+ drücken zund das Fenster anschließend minimieren, ist das System wahrscheinlich schneller als Sie beim Lesen derUnterbrechungsanforderung. Also anhalten/unterbrechen, minimieren, ein wenig warten, wieder maximieren kann auch eine Lösung sein.
- Wie gesagt,
less
es ist sicherer. - Nochmals mit tmux 1.8 getestet und funktioniert
Antwort2
Fügen Sie die folgenden Zeilen zu Ihrer tmux.conf hinzu (~/.tmux.conf)
set -g c0-change-trigger 150 set -g c0-change-interval 100
Weitere Informationen finden Sie unterhttp://blog.fraggod.net/2014/09/23/tmux-rate-limiting-magic-against-terminal-spamflood-lock-ups.html