• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Tatsächliche Idle Time ermitteln

Atelis

Akerö
Registriert
01.03.07
Beiträge
1.835
Hallo!

Ich versuche innerhalb eines Apple-Scripts die aktuelle Idle-Zeit zu ermitteln. Nach einer bestimmten Inaktivität sollen auf einem Mac mit Mountain Lion bestimmte Vorgänge gestartet werden. Nun wird auf dem Mac sehr viel per Remote Desktop gearbeitet, wodurch ich ein Problem bekomme.

Ich habe im Netz mehrere Möglichkeiten gefunden, an den gewünschten Wert zu kommen:

Code:
do shell script "ioreg -c IOHIDSystem | perl -ane 'if (/Idle/) {$idle=(pop @F)/1000000000; print $idle,\"\";last}'"

oder

Code:
do shell script "ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000; exit}'"

Doch in beiden Fällen wird die Idle-Zeit nicht zurückgesetzt, wenn man den Rechner per Remote Desktop fernsteuert. Arbeite ich mit Maus und Tastatur direkt am Mac, wird die Zeit auf 0 gesetzt. Das kann ich mir nicht erklären...
Das gleiche Verhalten kann ich unter Mac OS 10.7 Lion feststellen. Bei Snow Leopard wird die Idle Time zurückgesetzt, so wie ich es auch erwarte. Es hat sich also von 10.6 auf 10.7 irgendwas verändert.

Was kann ich machen, um die richtige (echte) Idle-Zeit in Mountain Lion zu bekommen?

Zusatz: Ich sehe gerade, dass Remote Desktop mir die tatsächliche Idle Time des Macs in der Rechnerübersicht anzeigt. Das Programm scheint sie also irgendwie zu bekommen und das heißt, dass es irgendwo noch abrufbar sein muss.
 
Ich habe mich mit dem Thema nochmal beschäftigt und habe festgestellt, dass sich ja etwas bei Remote-Sitzungen von Snow Leopard auf Lion geändert hat: ab Lion werden mehrere Remote-Sitzungen zeitgleich unterstützt und ich denke das führt zu dem nicht-zurücksetzen des Idle-Timers.

Hat jemand eine Idee oder einen Ansatz, wie ich an die "echte" Idle-Time kommen könnte?
 
Ich kann dir bei deinem Problem nicht weiterhelfen, aber zur Erklärung, warum beide Befehle immer dasselbe ausgeben:

Es sind prinzipiell dieselben Befehle, nämlich ioreg -c IOHIDSystem​. Da dieser Befehl aber eine Menge an Daten ausspuckt, muss die Ausgabe weiterverarbeitet werden. Das geschieht hier einmal mit perl und einmal mit awk, beide machen aber dasselbe.
 
  • Like
Reaktionen: raven
Welche Idle-Zeit willst du denn haben? Die Idle-Zeiten aller Benutzer? Vielleicht hilft dir das UNIX-Programm w.
 
Vielen Dank, das Programm w sieht interessant aus, kannte ich bisher noch nicht. Ich gucke mir mal die Infos an, die beim Remote-Mac angezeigt werden. Vielleicht kann ich daraus das berechnen, was ich brauche ...
 
Das Programm "w" hilft mir leider auch nicht weiter. Aus irgendeinem Grund zeigt mir das unter dem Begriff "Idle" nicht die Inaktivität an, sondern die Zeit, seit der letzten Anmeldung.