Wie kann ich die Katzenproduktion trotz massiver Produktion sofort stoppen?

9

Ich suche nach einer Möglichkeit, die Ausgabe an STDOUT zu stoppen, wenn ich feststelle, dass ein Befehl falsch ist. Zum Beispiel, wenn ich versehentlich eine sehr große Datei katze. Normalerweise hört es irgendwann auf, wenn Sie gedrückt halten Strg + c , aber es dauert lange.

Gibt es eine Möglichkeit, die Ausgabe sofort zu stoppen?

CHK
quelle

Antworten:

9

Sie können die Tastenkombination Strg-Z ausführen, um sie im Hintergrund anzuzeigen, und anschließend die PID beenden.

$ ctrl z (zum Hintergrund)

$ kill -9 {pid} 'des Prozesses, der gerade in den Hintergrund getreten ist'

user30141
quelle
1
Warum bist du kill -9 wenn es nicht unbedingt nötig ist?
benjwadams
2

Oft wurden die Daten bereits an das Display gesendet, und die "lange Zeit" ist das Terminal, das versucht, die Daten anzuzeigen. Es hilft nicht, etwas für die Aufgabe zu tun (d. H. Strg + Z oder Strg + C ), benötigen Sie entweder ein schnelleres Terminal oder etwas, um die Daten zu puffern.

Ich leite große Ausgänge durch less und tail Dies hängt davon ab, ob ich den oberen oder unteren Teil der Datei anzeigen möchte, da ich mit beiden Funktionen auf einfache Weise die Datenmenge steuern kann, die an das Terminal gesendet wird, und das Programm schließen kann, wenn dies nicht gewünscht wird.

Darth Android
quelle
1

Wechseln zu einem anderen Terminal (über STRG + F1 zu F6 im Textmodus oder Öffnen eines neuen Fensters in screen über STRG + EIN , C ), nachdem Sie entweder gedrückt haben STRG + Z oder STRG + C Das ursprüngliche Terminal überspringt alle Zeilenvorschübe und springt in kürzerer Zeit direkt zur letzten Ausgabezeile

Tobias Kienzler
quelle
Funktioniert dies, wenn die "lange Zeit" der Ausgabe in einen Netzwerkpuffer fließt und es lange dauert, bis der gesamte Text an das empfangende Terminal übertragen wurde? Wenn ja, wie erreicht man dasselbe beispielsweise im Terminator? Ich wechsle zu einem anderen Tab und nichts. Auf der anderen Seite, wenn ich die ssh-Sitzung mit ~ beende. dann hört es sofort auf. Ich würde die Sitzung aber lieber nicht töten.
vontrapp
@vontrapp Gute Frage (was wohl einen wert ist neue Frage ). Ich vermute, dass das nicht funktionieren wird, sondern über SSH bei lang laufenden Prozessen Verwendung findet tmux oder screen ist immer eine empfehlung
Tobias Kienzler
0

Sie sollten in der Lage sein, es zu leiten more oder less

cat large_file.txt | less

An welcher Stelle können Sie die Antwort durchblättern und mit einem abbrechen :q

Sie könnten auch verwenden grep um Ihre Antwort zu sortieren, wenn Sie nach einem bestimmten Fehler / Problem suchen.

http://www.westwind.com/reference/os-x/commandline/pipes.html

John Lillard
quelle
1
CHK fragt nach Situation mit BEREITS gestartetem Prozess. Sie können in diesem Fall nicht weniger / mehr verwenden.
september
Dies ist zwar keine Antwort auf die direkte Frage, hat aber den Wert, dass erklärt wird, wie die Situation vermieden werden kann, bevor sie auftritt.
TecBrat