Szukam prostego sposobu na określenie przybliżonej ilości czasu spędzanego na komputerze. Może to być trudne zadanie, jeśli próbujesz monitorować procesy, naciśnięcia klawiszy, kliknięcia myszą i tym podobne, ponieważ możesz robić wszystko, od myślenia o problemie z kodowaniem, czytania artykułu internetowego, rozmowy przez telefon lub chodzenia pies. Komputer nie może odczytać moich myśli. Ponieważ zostawiam komputery na 24/7 monitorowanie logowania nie będzie działać.
Wpadłem na pomysł rejestrowania, ile czasu komputer spędza w trybie wygaszacza ekranu. Mój błąd nie byłby wówczas większy niż iloczyn czasu bezczynności wygaszacza ekranu z liczbą przejść w tryb wygaszacza ekranu. Odjęcie tego od 24 godzin dałoby mi szacunek, który byłby uzasadniony dla moich celów.
Problem polega na tym: nie wiem, jak się zalogować, gdy wygaszacz ekranu włącza się i wyłącza. W tej chwili używam Ubuntu 10.10 na większości komputerów, a na niektórych z nich zacznę aktualizację do 11.04.
Jakieś pomysły?
[edytuj] Po dalszym googlowaniu trafiłem na monitor dbus, który wyglądał, jakby mógł działać, ale brakuje mu ważnego składnika. Oto uruchamiany przeze mnie skrypt, który uruchamia monitor jako demon:
#!/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
Oto wynik, jaki wytwarza po kilkukrotnym zablokowaniu i odblokowaniu ekranu:
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
Druga kolumna to oczywiście unix UTC w kilka sekund. Brakującym składnikiem jest to, że nie określa, czy wygaszacz ekranu jest włączony, czy wyłączony! Przypuszczam, że mogę założyć, że przełączają się od czasu, gdy zdarzyło się NameAcquired, ale denerwuje mnie, że może istnieć brakujące lub dodatkowe zdarzenie, którego nie mogę przewidzieć, co wytrąciłoby wszystko z synchronizacji.
Bardzo zobowiązany do pomysłów.
jkcunningham