htop /topコマンドラインでプロセス名フィルタを指定します - プログラムの起動時に?

htop /topコマンドラインでプロセス名フィルタを指定します - プログラムの起動時に?

Ubuntu 18.04を使用しています。私は始めることができることをすでに知っていますhtop。その後、F4を押してフィルタリングし、プロセス名検索クエリ(gphoto2findgvfs-gphoto2-volume-monitor.serviceなど)を入力または貼り付けて、htopを使用して表示されたプロセスをフィルタリングできます。そのようなプロセスがなければ、後で何も表示されません。開始、htop後で表示されます。

htopそれでは、コマンドラインからフィルタリングを始めましょう。たとえば、次のようになります。

htop --filter="gphoto2"

...F4を押して端末UIに入力するのとまったく同じ動作をします。これは、コマンドがセッションに統合されている場合に便利ですtmux

探してみましたが、man htop残念ながらそのようなコマンドライン/オプションを見ることはできません。私が見た最も近いもの-pはで述べたようにフィルタに一致しない*ない*プロセスのみを表示するには?:

それはまるで

htop -p "$(pgrep -vfd, 'java|python')"

これは、htopの実行開始後に開始されたプロセスを考慮しないという明らかな欠点がある。

それでは、起動時にコマンドラインでプロセス名フィルタリングを設定して、新しく終了または生成されたプロセスを考慮するように(htop端末UIでF4を押すのと同じように)htop、またはtop他の同様のプログラムに設定する方法はありますか?

答え1

さて、今は2021年3月25日で、私はArchでhtopバージョン3.0.5を実行しており、--filter testすべてがうまく動作しています-F test。これはマニュアルページに含まれています:--filter="test"-F="test"

COMMAND-LINE OPTIONS
[...]
       -F --filter=FILTER
              Filter processes by command

答え2

私が知っているように、htopではなくtopでこれを行うことができます。

-pあなたは旗が欲しいです。たとえば、top -p $(pgrep -d',' -f "geany")

これは上から始まり、geanyのプロセスのみを表示します。

Geanyプロセスのトップフィルタ

答え3

私もこのオプションを探しましたが、存在しません。私は(あなたのクエリを使って)次のように決めました:

\# ps -aux |grep "[0-9] gphoto2"

答え4

あなたのコマンドは以前のバージョンでは機能しません。おそらくそのコマンドがあります。たぶんあなたも私のようにレガシーシステムを通して道を見つけようとしています。許可された回答はすでに正しいと言っており、以前のバージョンにのみ問題があります。例を通して証明されています。

$ htop -v
htop 1.0.1 - (C) 2004-2011 Hisham Muhammad
Released under the GNU GPL.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise
$ htop --filter test
htop: unrecognized option '--filter'
$ htop --filter "test"
htop: unrecognized option '--filter'
$ htop -F test
htop: invalid option -- 'F'
$ htop -F "test"
htop: invalid option -- 'F'

そして他の答え+コメントから:

$ htop -p $(pgrep -d',' -f "test")
htop: invalid option -- 'p'
$ top -p $(pgrep -d',' -f "test")
--works--

関連情報