web-dev-qa-db-ja.com

とにかく、nethogsの出力をconkyで表示することはできますか?

たくさん検索しましたが、nethogsをconkyで表示する方法が見つかりません。 nethogsは端末に出力し、出力をリアルタイムでキャプチャする方法はないようです。これは私がconkyFORAGESに望んでいたことの1つです。

5
koogee

そうは思いません。

nethogsは、ncursesライブラリを使用するインタラクティブなプロセスです。ターミナルウィンドウで起動し、ユーザーからの入力を取得することを期待しています。

Conkyはexec/execi/execp/execpiディレクティブを使用してプログラムを実行できますが、これらはテキストを出力して終了する「1回実行」プログラムであると想定されています。 Conkyはそのテキストを受け取り、それを表示します。

Nethogs開発者に手紙を書いて、topコマンドのバッチモードのような「バッチ」モードを追加するかどうかを確認してください。 nethogsを1秒間実行してから、そのテキストを表示して終了できる場合は、そのテキスト出力をConkyで使用できます。

2
suprjami

私はUbuntu12.10のconkyで同じことをしようとしました。しかし、それから私はより良い考えを持っていました:

  • gnome-terminalの新しいプロファイルを作成します(透明、小さいフォントサイズ、好きなもの)
  • パッケージdevilspieをインストールします(GTKバージョンgdevilspieを試すこともできます
  • devilspieの新しい構成ファイルを作成します。これは、ウィンドウフレームの境界線とメニューを取り除くのに役立ちます。

例えば/home/<user>/.devilspie/gnome-terminal.ds

内容:

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

(geometry "-0-0")ウィンドウを右下に配置します

構成ファイルgnome-terminal.dsは書き込まれていません/変更されていません。変更を確認するには、デーモンを作成して停止/再起動する必要があります。起動スクリプトにデーモンを追加することを忘れないでください(XFCE:[設定]> [セッションと起動])。

ここで、devilspieのように自動起動に追加できる起動bashスクリプトが必要です。このようなもの:

#!/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

ターゲットデバイスを指定するには、スクリプトに引数を渡す必要があります。以前のnethogsプロセスが実行されていないことを確認するために、スクリプト内にsleepコマンドがあることに注意してください。

0
user269748