¿Cómo puedo ver cuánto tiempo ha estado activa mi computadora (como inactiva)

4

He visto una variedad de soluciones para verificar cuánto tiempo ha estado inactiva mi máquina, y sé que puedo verificar cuánto tiempo desde el último reinicio con uptime , pero tengo curiosidad si hay una manera de ver cuánto tiempo desde que mi computadora estuvo inactiva por última vez ¿Quizás desde la última vez que se activó la configuración de ahorro de energía, o la última vez que se activó el protector de pantalla / se apagó el monitor, etc.?

Estoy bien usando un comando de AppleScript o shell para determinar esto, si esas son las mejores soluciones.

    
pregunta hookedonwinter 18.07.2012 - 16:52

4 respuestas

2

También puede encontrar el tiempo de inactividad en UNIX ejecutando

ioreg -c IOHIDSystem

Y buscando el HIDIdleTime devuelto

O puedes ejecutar un script de shell en modo inactivo, solo tienes que llamarlo cada 30 segundos o más usando LaunchD. Asegúrese de poner el archivo xd launchd en / Library / LaunchDaemons para que se ejecute incluso cuando ningún usuario haya iniciado sesión, o en / Library / LaunchAgents / si solo desea que se ejecute cuando alguien inicie sesión en la máquina.

#!/bin/bash
idl=$"'ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print int($NF/1000000000); exit}''"
idletime="600"
if [ $idl -gt $idletime ]; then
#Your
#Code
#Here
fi
    
respondido por el Ryan Colley 18.07.2012 - 17:24
1

Puedes usar un applecript.

en inactivo     muestra el cuadro de diálogo "Oye, tu computadora no estaba ocupada, así que pensé que sería un error" final inactivo

Guárdelo como una aplicación y manténgalo funcionando en segundo plano. ¿Tal vez solo escriba una marca de tiempo en un archivo para leerlo más tarde?

    
respondido por el Ryan Colley 18.07.2012 - 17:20
1

Puede usar la siguiente secuencia de comandos para mostrar los segundos de inactividad, desde Inactividad y tiempo de inactividad en OS X :

#!/usr/bin/env perl
my $idle_seconds_command = 'echo $(('ioreg -c IOHIDSystem | sed -e \'/HIDIdleTime/ !{ d\' -e \'t\' -e \'}\' -e \'s/.* = //g\' -e \'q\'' / 1000000000))';
print "Counting seconds of inactivity... Command + Period (.) to quit\n\n";
do {
    my $idle_seconds = '$idle_seconds_command';
    chomp($idle_seconds);
    print "Idle for $idle_seconds seconds.\n";
    sleep(1);
} while(1);

Cuando se ejecuta el script, se imprime una línea cada segundo que muestra el contador de tiempo de inactividad actual.

    
respondido por el Graham Miln 06.02.2015 - 14:46
-2

Aquí hay un ejemplo de archivo XML LaunchD.

enlace

O bien, colóquelo en /Library/LaunchDaemons/ si desea que se ejecute incluso cuando nadie haya iniciado sesión o en /Library/LaunchAgents/ si solo quiere que se ejecute cuando alguien haya iniciado sesión en la máquina.

Coloque su script en /Library/Scripts/

Debe asegurarse de que su archivo LaunchD plist es la raíz del propietario, la rueda de grupo y los permisos 644.

chown root /Library/LaunchDaemons/com.my-company.my-name.plist
chgrp wheel /Library/LaunchDaemons/com.my-company.my-name.plist
chown 644 /Library/LaunchDaemons/com.my-company.my-name.plist
    
respondido por el Ryan Colley 18.07.2012 - 17:34

Lea otras preguntas en las etiquetas