Wenn ich in einem (Gnom-) Terminal cat
eine Datei habe, die sich als viel zu lang herausstellt, kann ich immer Ctrl- drücken, um sie czu unterbrechen.
Doch in tmux
, wenn das gleiche passiert, dauert es lange für das Signal durch das erzeugte Ctrl- ckeypress um den Server zu erreichen, und bis es soweit ist, der Server ist momentan beschäftigt mit diesem Ausgang, und ich bin nicht in der Lage , etwas zu tun , aber gerade die Flut (oder mit einem anderen Terminal).
Dies ist dem hier beschriebenen Problem etwas ähnlich .
Ich möchte das Terminal, den Server oder sogar das spezifische tmux
Fenster / Fenster nicht neu starten . Verwenden less
ist eine kluge Angewohnheit, aber ich frage hier, wie man bereits aufgetretene Probleme löst, nicht wie man klug ist und sie vermeidet, indem man vor dem Handeln nachdenkt ... es wird immer Überraschungen geben!
Gibt es also eine Möglichkeit, das Terminal die Überschwemmungen stoppen zu lassen, die gesendeten Daten zu verwerfen usw.? Was kann ich tun, um mich von diesen nervigen Minuten des Betrachtens von Charakteren auf meinem Bildschirm zu befreien ?
head
odertail
gerade genug von der Ausgabe erhalten.Antworten:
Zwei Vorschläge
In solchen Fällen ist CTRL+ selten z effektiver als CTRL+ c: Es antwortet schneller. Danach unterbrechen Sie den Befehl, mit dem Sie ihn beenden können,
kill %1
oder mit welcher Jobnummer auch immer. In der Hoffnung, dass Sie immer noch etwas vom Bildschirm lesen können (ein überfluteter zufälliger Binärtext kann Ihren Zeichensatz leicht durcheinander bringen).In einem anderen Terminal können Sie fragen
pgrep cat
(obcat
der Befehl aufgerufen wurde) und feststellen, ob dercat
Prozess Ihre CPU verwendet, oder indem Siepstree
: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) --- cat ( 22532) )
In diesem Fall, nachdem Sie nur
kill
diecat
PID
:kill 22532
Hinweis:
less
ist sicherer.quelle
tmux
. Natürlich kann Ihr Vorschlag auch gut oder sogar besser funktionieren, wie in einer ähnlichen Frage zu Superuser vom 22. April 13pstree
Ausgabe: es war eine echte. Ich denke, es trifft auf die Situation zu, in der op gefragt wurde: "Ich frage hier, wie man bereits aufgetretene Probleme löst , nicht wie man klug ist und sie vermeidet, indem man nachdenkt, bevor man handelt ..." . Ihre Lösung, von der ich glaube, dass sie funktioniert und das Problem löst, gehört zur Kategorie "Wie man klug ist und sie vermeidet, indem man vorher nachdenkt ..." :)tmux
mit einem Ernährungsbefehl verwendetcat text
. Dastmux(22425)
in Punkt 2 sollte Ihnen sagen. Übrigens habe ichtmux
auf einer neuen Maschine installiert . Es funktioniert wieder wie gesagt. Das Beispiel, das Sie bereitstellen, verwendet einenecho
und mehrere Zyklen: Sie sollten denfor
internen Befehl abfangen , um die Überflutung mit einemkill PID
Befehl zu stoppen. Dies bedeutet, dass Sie sichtmux
selbst töten , da die Operation dies nicht möchte. Mit einer Singlecat
(wie für die Operation) gibt es einen Prozess, den Sie abfangen und töten können.pstree -sp
von welcher Ausgabe Sie die Kette von Prozessen (-s
) sehen können, die mit enden.cat (PID=22532)
Dies hat für Eltern eine Bash , die für Eltern die tmux (22425) hat bedeutet, dass ich diesen Test mit tmux durchgeführt habe . Überprüfen Sie diesen Link und Sie sehen, dass er seit der 1. Version vom 19. Juni vorhanden war. 2) In dem Kommentar vom 5. September sagte ich ausdrücklich "Ich habe es versucht und arbeite" .Fügen Sie Ihrer tmux.conf die folgenden Zeilen hinzu (~ / .tmux.conf)
set -g c0-change-trigger 150 set -g c0-change-interval 100
Weitere Informationen finden Sie unter http://blog.fraggod.net/2014/09/23/tmux-rate-limiting-magic-against-terminal-spamflood-lock-ups.html
quelle