私が1日のコンピューターで過ごすおおよその時間を決定する簡単な方法を探しています。プロセス、キーの押下、マウスのクリックなどを監視しようとすると、これは困難なタスクになる可能性があります。なぜなら、コーディングの問題について考えたり、Web記事を読んだり、電話で話したり、犬。コンピューターは私の心を読むことができません。24時間年中無休でコンピューターを監視しているため、ログインは機能しません。
私は、コンピューターがスクリーンセーバーモードでどれだけの時間を費やしているかを記録するというアイデアに思いつきました。私のエラーは、スクリーンセーバーへのアイドル時間とスクリーンセーバーモードに入る回数の積よりも大きくなることはありません。これを24時間から引くと、私の目的にとって妥当な推定値が得られます。
問題は、スクリーンセーバーがオン/オフになったときにログを記録する方法がわからないことです。現在、ほとんどのマシンでUbuntu 10.10を実行していますが、一部のマシンで11.04へのアップグレードを開始しようとしています。
何か案は?
[編集]さらにグーグルで調べた結果、dbus-monitorが機能したように見えましたが、重要な要素が欠落しています。これは、モニターをデーモンとして起動するスクリプトです。
#!/bin/bash
RUNNING=`ps -A | grep "dbus-monitor"`
if [ ! $RUNNING ]; then
echo "(Re)starting dbus-monitor daemon"
nohup dbus-monitor "--profile" "type='signal',interface='org.gnome.ScreenSaver'" >> ${HOME}/sc.log &
fi
以下は、画面を数回ロックおよびロック解除した後に生成される出力です。
sig 1304860712 153829 2 /org/freedesktop/DBus org.freedesktop.DBus NameAcquired
sig 1304860717 318732 462 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304860725 547928 463 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304861018 17 464 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
sig 1304862919 403523 466 /org/gnome/ScreenSaver org.gnome.ScreenSaver ActiveChanged
2番目の列は明らかに秒単位のUNIX UTCです。不足している要素は、スクリーンセーバーがオンかオフかを識別しないことです!NameAcquiredが発生したときからトグルすると想定できると思いますが、すべてが同期しなくなると予想できない行方不明または余分なイベントがあるかもしれないとうんざりします。
アイデアを非常に義務付けられています。
jkcunningham