アイドルまたは最小化されたプロセスの識別

アイドルまたは最小化されたプロセスの識別

LinuxのいくつかのGUIプロセスがNet-SNMP

私がいくつかの研究を行った結果、SNMPは通常のユーザーが実行するプロセスではなくサービス監視用に設計されているようです。

MIBオブジェクトが1つだけ見つかりました。HRSW実行状態RFC 2790)動作状態は4つのみです。ランニング(1)実行可能(2)動作しない(3)そして無効(4)ただし、特定のGUIアプリケーションを最大化および最小化してテストすると、その状態の変化は表示されません。実際にリストされsnmpwalkているすべてのプロセス実行可能(2)ステータス(1つを除く):次のようsnmpdにリストされていますランニング(1)

# snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.25.4.2.1.7 | grep "running(1)"
HOST-RESOURCES-MIB::hrSWRunStatus.920 = INTEGER: running(1)
# snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.25.4.2.1.2 | grep 920
HOST-RESOURCES-MIB::hrSWRunName.920 = STRING: "snmpd"

それにもかかわらず、ps現在使用しているプロセスの状態が変化することはわかりません(その点のみを除くhtop)。としてテキストを書くのと同じように、htopターミナルコンソールで実行しても、これらのプロセスのどれも状態を持ちません。konsolekate「(実行中または実行可能)、ただ」S「(睡眠妨害)、ちょっと変なようですが元々はそうすべきですが… https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsolutiondetails=&solutionid=sk112953

それでは、Linuxではプロセスがアイドル状態であるか最小化されているかをどうやって知ることができますか?

答え1

コメントでアプリの使用状況を追跡する時間追跡アプリを開発したいと言いました。追跡すればできると思います。特定の時間にどのウィンドウがアクティブなウィンドウですか?

これを行うには、ユーザーのX11セッションにアクセスし、名前付きX11プロパティを繰り返しクエリする必要があります_NET_ACTIVE_WINDOW

このコード例は、次のことを行うのに役立ちます。 https://github.com/UltimateHackingKeyboard/current-window-linux/blob/master/get-current-window.c

システムがクラシックX11の代わりにWaylandを使用している場合、残念ながらWaylandには独自のソリューションが必要な場合があります。

関連情報