Como posso interromper a saída do gato imediatamente, apesar da saída massiva?

9

Estou procurando uma maneira de parar a saída para STDOUT quando percebo que um comando está errado. Por exemplo, se eu acidentalmente criar um arquivo muito grande. Normalmente, ele irá parar se você pressionar ctrl+c , mas leva muito tempo.

Existe uma maneira de parar a saída mais imediatamente?

CHK
fonte

Respostas:

10

Você pode executar o ctl-z para segundo plano e depois matar o PID.

$ ctl z (para segundo plano)

$ kill -9 {pid} 'do processo que ficou em segundo plano'

user30141
fonte
11
Por que você está kill -9se não é absolutamente necessário?
precisa saber é o seguinte
2

Muitas vezes, os dados já foram enviados para a tela, e o "longo tempo" é o terminal que está tentando exibir os dados. Fazer qualquer coisa na tarefa não ajudará (ou seja, Ctrl+ Zou Ctrl+ C), você precisará de um terminal mais rápido ou de algo para armazenar os dados em buffer.

Eu canalizo grandes saídas através lesse taildependendo se desejo exibir a parte superior ou inferior do arquivo, pois ambas me permitem controlar facilmente a quantidade de dados enviados ao terminal e fechar o programa, se não for o que eu quero.

Darth Android
fonte
1

Mudar para um terminal diferente (via CTRL+ F1para F6no modo de texto ou abrir uma nova janela no screenvia CTRL+ A, C) depois de pressionar CTRL+ Zou CTRL+ Cfará com que o terminal original pule a tentativa de fazer todos os feeds de linha e pule diretamente para a última linha de saída em um tempo menor

Tobias Kienzler
fonte
Isso funciona quando o "longo tempo" é a saída para um buffer de rede e leva muito tempo para transferir todo o texto para o terminal receptor? Se sim, como alguém consegue o mesmo no, digamos, terminador? Eu mudo para outra guia e nada. Por outro lado, se eu matar a sessão ssh usando ~. então para imediatamente. Eu prefiro não matar a sessão.
vontrapp
@ vontrapp Boa pergunta (que provavelmente vale uma nova pergunta ). Meu palpite seria que isso não funcionará, mas sobre SSH para processos de longa execução usando tmuxou screené sempre uma recomendação #
Tobias Kienzler
0

Você deve conseguir canalizá-lo para moreouless

cat large_file.txt | less

Nesse ponto, você pode folhear a resposta e sair com um :q

Você também pode usar greppara ajudar a resolver sua resposta se estiver procurando por um erro / problema específico.

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

John Lillard
fonte
11
CHK perguntando sobre a situação com JÁ iniciou o processo. Você não pode usar menos / mais neste caso.
setembro
Embora não seja uma resposta à pergunta direta, isso tem valor, pois mostra como evitar a situação antes que ela aconteça.
TecBrat