Come può uno script rilevare il tempo di inattività di un utente?


33

Voglio verificare, all'interno di uno script bash, da quanto tempo l'utente di una sessione X è inattivo.

L'utente stesso non deve utilizzare bash, ma solo X. Se l'utente ha appena spostato il mouse, ad esempio, una buona risposta sarebbe "inattiva per 0 secondi". Se non ha toccato il computer per 5 minuti, una buona risposta sarebbe "inattiva per 300 secondi"

Il motivo per non usare subito xautolock è riuscire a implementare comportamenti complessi. Ad esempio, se l'utente è inattivo per 10 minuti, prova a sospendere, se è inattivo per più di 5 minuti, spegni (so che sembra strano, ma la sospensione non funziona sempre qui ...)

Risposte:


38

Ho appena trovato un modo semplice per farlo.

C'è un programma chiamato xprintidle che fa il trucco

ottenere il tempo di inattività (in millisecondi) è semplice come

xprintidle

e da installare

apt-get install xprintidle

Per gli amministratori di sistema, funziona anche in remoto

Da una sessione ssh :

export DISPLAY=:0 && sudo -u john xprintidle

dove john è l'utente che ha effettuato l'accesso alla sessione X sul computer remoto.


4

Risposta da qui :

In bash

w | tr -s " " | cut -d" " -f1,5 | tail -n+3

ti dà una coppia nome utente / idletime per ogni shell. Quindi in pratica puoi ottenere le informazioni inattive tramite il comandow


come conta le interazioni con X che non sono attraverso un terminale? Ad esempio, dire un movimento del mouse all'interno di un Firefox. Se l'utente sta spostando il mouse, vorrei ottenere la risposta "non inattivo" o "inattivo per 0 secondi"
josinalvo,

@josinalvo wti dà solo il tempo di inattività in quel particolare terminale penso.
Dan,

3
Quel tempo di inattività è in realtà il tempo di esecuzione, il tempo di attività del processo (colonna WHAT dell'output w). Quindi non dà idea di quanto tempo l'utente è rimasto inattivo nella sua sessione X.
Rosch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.