Existe alguma maneira de mostrar nethogs saída em conky?

5

Eu pesquisei muito, mas não consigo encontrar uma maneira de mostrar nethogs em conky. nethogs imprime no terminal e parece não haver maneira de capturar a saída em tempo real. Isso é uma coisa que eu queria por conky FOR AGES.

    
por koogee 25.10.2012 / 19:00

2 respostas

2

Eu não penso assim.

nethogs é um processo interativo usando a biblioteca ncurses. Ele espera iniciar em uma janela de terminal e obter entrada do usuário.

O Conky pode executar programas usando as diretivas exec / execi / execp / execpi, mas esses programas devem ser "executados uma vez", que emitem texto e depois saem. Conky pega o texto e o exibe.

Tente escrever para o desenvolvedor nethogs e veja se ele adicionará o modo "em lote", como o modo em lote do comando top . Se você pudesse pegar nethogs para executar por um segundo, em seguida, exibir seu texto e sair, você poderia usar essa saída de texto em Conky.

    
por 14.05.2013 / 13:32
0

Eu tentei fazer o mesmo com o conky no Ubuntu 12.10. Mas então eu tive uma ideia melhor:

  • crie um novo perfil para o gnome-terminal (transparente, pequeno tamanho da fonte, o que você quiser)
  • instale o pacote devilspie (você também pode tentar a versão GTK gdevilspie
  • crie um novo arquivo de configuração para devilspie , o que ajudará a se livrar da borda e do menu da moldura da janela

por exemplo. /home/<user>/.devilspie/gnome-terminal.ds

conteúdo:

(if (is (window_role) "borderless")
  (begin
    (undecorate)
    (geometry "-0-0")
    (below)
    (skip_tasklist)
  )
)

(geometry "-0-0") colocará a janela no canto inferior direito

Quando o arquivo de configuração gnome-terminal.ds não tiver sido gravado / alterado, você deverá criá-lo e parar / reiniciar o devilspie deamon para ver as alterações. Não se esqueça de adicionar o daemon aos seus scripts de inicialização (XFCE: Configuração > Sessão e inicialização).

Agora precisamos de um script de inicialização que você possa adicionar ao seu início automático, assim como o devilspie. Algo parecido com isto:

#!/bin/bash

if [ $# -lt 1 ]
then
  echo "Usage: 'basename $0' <iface>"
  exit 1
fi

killall -9 nethogs 2>/dev/null
sleep 5
'sudo -H -u <username> gnome-terminal -e "/usr/bin/nethogs -d 4 $1" --profile=<profile-name> --role=borderless'

exit 0

Você deve passar um argumento para o script para especificar o dispositivo de destino. Observe que há um comando sleep no script, apenas para garantir que os processos nethogs anteriores não estejam em execução.

    
por 15.02.2014 / 11:57