Jak mogę natychmiast zatrzymać produkcję kota pomimo ogromnej mocy?

9

Szukam sposobu, aby zatrzymać wyjście do STDOUT, gdy zdam sobie sprawę, że polecenie jest nieprawidłowe. Na przykład, jeśli przypadkowo złapię bardzo duży plik. Zwykle w końcu się zatrzyma, jeśli przytrzymasz klawisz ctrl+c , ale zajmuje to dużo czasu.

Czy istnieje sposób na natychmiastowe zatrzymanie produkcji?

CHK
źródło

Odpowiedzi:

10

Możesz uruchomić ctl-z, aby ustawić go w tle, a następnie zabić PID.

$ ctl z (w tle)

$ kill -9 {pid} „procesu, który właśnie został w tle”

użytkownik30141
źródło
1
Dlaczego się kill -9zastanawiasz, jeśli nie jest to absolutnie konieczne?
benjwadams
2

Często dane zostały już wysłane na wyświetlacz, a „długi czas” to terminal, który próbuje wyświetlić dane. Wykonanie czegokolwiek w zadaniu nie pomoże (tj. Ctrl+ ZLub Ctrl+ C), potrzebujesz albo szybszego terminala, albo czegoś do buforowania danych.

Rura I duże wyjścia przez lessi tailw zależności od tego, czy chcę zobaczyć górną lub dolną część pliku, ponieważ zarówno pozwala mi łatwo kontrolować ilość danych wysyłanych do terminalu i zamknąć program, jeśli nie jest to, co chcę.

Darth Android
źródło
1

Przełączenie do innego terminala (przez CTRL+ F1do F6w trybie tekstowym lub otwarcie nowego okna screenza pomocą CTRL+ A, C) po naciśnięciu CTRL+ Zlub CTRL+ Cspowoduje, że oryginalny terminal pominie próbowanie wykonania wszystkich linii i przejście bezpośrednio do ostatniej linii produkcji w krótszym czasie

Tobias Kienzler
źródło
Czy to działa, gdy „długi czas” jest wysyłany do bufora sieciowego i zajmuje dużo czasu, aby przenieść cały tekst do terminala odbiorczego? Jeśli tak, to w jaki sposób można to osiągnąć w powiedzmy w terminatorze? Przełączam się na inną kartę i nic. Z drugiej strony, jeśli zabiję sesję ssh za pomocą ~. to natychmiast się zatrzymuje. Wolałbym jednak nie zabijać sesji.
vontrapp
@vontrapp Dobre pytanie (które prawdopodobnie jest warte nowego pytania ). Domyślam się, że to nie zadziała, ale przez SSH do długotrwałych procesów przy użyciu tmuxlub screenzawsze jest zaleceniem
Tobias Kienzler
0

Powinieneś być w stanie przesłać go do morelubless

cat large_file.txt | less

W którym momencie możesz przejrzeć odpowiedź i wybić za pomocą :q

Możesz także użyć, grepaby pomóc w uporządkowaniu odpowiedzi, jeśli szukasz konkretnego błędu / problemu.

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

John Lillard
źródło
1
CHK pyta o sytuację z JUŻ rozpoczętym procesem. W tym przypadku nie możesz użyć mniej / więcej.
września
Chociaż nie jest odpowiedzią na bezpośrednie pytanie, ma to tę wartość, że mówi, jak uniknąć sytuacji, zanim się zdarzy.
TecBrat,