Gostaria de agradecer e contribuir de volta com um script simples e bruto (pode ser melhorado), colocá-lo em aplicativos de inicialização com:
xterm -e logSessionLock.sh
também é o travamento do sistema / blackout preparado. Não é muito testado ... mas está funcionando bem até agora. ele criará 2 arquivos, um em $ HOME (o log) e outro em / tmp (a solução alternativa de falha do sistema)
logSessionLock.sh
#!/bin/bash
logFile="."'basename $0'".log"
function FUNClog {
strTime='gnome-screensaver-command --time'
strDate='date +"%Y%m%d-%H%M%S"'
strLog="$strDate ($1) $strTime"
}
function FUNCwriteLog {
echo $strLog >>$HOME/$logFile
echo $strLog
}
active=false
firstTime=true
# restores last log entry in case of a system crash
strLog='cat "/tmp/$logFile.tmp"'
FUNCwriteLog
echo "" >"/tmp/$logFile.tmp"
if [[ -n "$strLog" ]]; then #if has something, it was active when the system crashed
active=true
fi
while true; do
if gnome-screensaver-command --query |grep -q "The screensaver is active"; then
if ! $active; then
# restore the saved tmp log
strLog='cat "/tmp/$logFile.tmp"'
FUNCwriteLog
# update log (can be off when this line is reached? once it seem to happen...)
FUNClog BEGIN
FUNCwriteLog #logs the begin time
active=true
else
FUNClog ON #stores the ammount of time the screensaver has been ON
echo $strLog >"/tmp/$logFile.tmp"
fi
else
if $active; then
FUNCwriteLog #saves the ammount of time the screensaver has been ON
FUNClog OFF
FUNCwriteLog
echo "" >"/tmp/$logFile.tmp"
active=false
fi
fi
sleep 1
done
o log é assim:
20120214-191528 (BEGIN) The screensaver has been active for 0 seconds.
20120214-193602 (ON) The screensaver has been active for 1234 seconds.
20120214-193603 (OFF) The screensaver is not currently active.