Por que 'nohup top' corta as linhas de saída?

1

Eu quero usar nohup para registrar periodicamente a saída de top (a cada 15s). Para isso, eu faço o login no servidor com SSH, realizo o seguinte comando e faço logout novamente:

nohup top -b -c -d15 &

O -c sinalizador fornece informações adicionais sobre o comando, mas no arquivo nohup.out gerado, essa informação é cortada para 82 caracteres.

Então, em vez de produzir assim:

10484 daemon   20   0 68924 5556 2292 S  0.0  0.0   0:00.06 /opt/CollabNet_Subversion/bin/httpd -D csvn_installed -k start

... em nohup.out , é assim:

10484 daemon   20   0 68924 5556 2292 S  0.0  0.0   0:00.06 /opt/CollabNet_Subv

Como posso evitar que nohup corte os resultados de top ?

    
por dokaspar 19.04.2016 / 15:26

2 respostas

5

Você precisa especificar a largura de saída que o top deve usar, com o parâmetro -w (até um máximo de 512 colunas):

nohup top -b -c -d15 -w512 &

Se a sua versão de top não suporta -w , o mesmo efeito pode ser alcançado usando a variável de ambiente COLUMNS :

COLUMNS=512 nohup top -b -c -d15 &

Como explicado por schily , já que top não está saindo para um terminal nesse caso, não pode determinar a largura do terminal a ser usado e volta para um padrão seguro.

    
por 19.04.2016 / 15:45
1

Você não pode, a menos que haja uma maneira explícita de informar sua versão top específica, que deve ser usada com a saída. A implementação top que conheço não permite especificar a largura da saída.

Isso ocorre porque nohup faz com que o programa top seja executado com um arquivo simples como stdout em vez de um terminal.

Por esse motivo, top não pode recuperar a largura tty e volta para as 80 colunas padrão.

    
por 19.04.2016 / 15:32

Tags