Come posso vedere per quanto tempo il mio computer è stato attivo (come in non inattivo)

4

Ho visto una varietà di soluzioni per verificare per quanto tempo la mia macchina è rimasta inattiva, e so che posso controllare quanto tempo dall'ultimo riavvio con uptime , ma sono curioso di sapere se c'è un modo per vedere quanto tempo dato che il mio computer era inattivo per l'ultima volta. Forse dall'ultima volta che sono state avviate le impostazioni di risparmio energetico, o l'ultima volta da quando il salvaschermo è stato attivato / monitor spento, ecc.?

Sto bene usando un comando applescript o shell per determinare questo, se sono le migliori soluzioni.

    
posta hookedonwinter 18.07.2012 - 16:52
fonte

4 risposte

2

Puoi anche trovare il tempo di inattività in UNIX eseguendo

ioreg -c IOHIDSystem

E cercando la HIDIdleTime restituita

Oppure potresti eseguire uno script di shell su idle in questo modo, basta chiamarlo ogni 30 secondi circa usando LaunchD. Assicurati di inserire il file xml di launchd in / Library / LaunchDaemons in modo che venga eseguito anche quando nessun utente ha effettuato l'accesso, o / Library / LaunchAgents / se desideri che venga eseguito solo quando qualcuno accede al computer.

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

Puoi usare un applescript.

inattivo     mostra la finestra di dialogo "Ehi, il tuo computer non era occupato, quindi ho pensato di farcela" fine inattivo

Salvalo come un'applicazione e mantienilo in esecuzione in background. Forse basta scrivere un timestamp in un file da leggere più tardi?

    
risposta data 18.07.2012 - 17:20
fonte
1

Puoi usare il seguente script per mostrare i secondi di inattività che spuntano, da Inattività e tempo di inattività su 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);

Quando si esegue lo script, stampa una riga ogni secondo che mostra il contatore del tempo di inattività corrente.

    
risposta data 06.02.2015 - 14:46
fonte
-2

Ecco un esempio di file XML LaunchD.

link

O posizionalo in /Library/LaunchDaemons/ se vuoi che venga eseguito anche quando nessuno è loggato o in /Library/LaunchAgents/ se vuoi che venga eseguito solo quando qualcuno accede al computer.

Inserisci lo script in /Library/Scripts/

Devi assicurarti che il tuo file Plist LaunchD sia proprietario root, gruppo wheel e permessi 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
    
risposta data 18.07.2012 - 17:34
fonte

Leggi altre domande sui tag