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?

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'


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.


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


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.