Ниже приведен скрипт для расчета времени простоя машины. Предполагается, что скрипт проверяет время простоя xserver с интервалом в 1 минуту и записывает результат в местоположение с помощью cronjob. Но это не работает, как я ожидал. Он не сообщает о времени простоя, даже если машина работает на холостом ходу больше назначенного лимита времени простоя.
В этом примере ограничение по времени составляет 1 минуту. Это просто фиктивное время для того, чтобы задать этот вопрос и проверить, не теряя времени.
Кто-нибудь может помочь?
#!/bin/bash
timeinmsec="$(xprintidle)"
timeinmin="$(($timeinmsec / 60000))"
if [[ "$timeinmin" -gt 1 ]]
then
echo "$timeinmin Minutes idle time reported" >> /home/user/log.txt;
echo $(date '+%X') >> /home/user/log.txt;
echo "$line" >> /home/user/log.txt;
else
echo "No idle time reported" >> /home/user/log.txt;
echo $(date '+%X') >> /home/user/log.txt;
echo "$line" >> /home/user/log.txt;
fi
Выходные данные я получаю
No idle time reported
05:24:01 PM
No idle time reported
05:25:01 PM
No idle time reported
05:26:01 PM
No idle time reported
05:27:01 PM
Удалось решить проблему. Мне пришлось добавить export DISPLAY=:0
вверху скрипта, поскольку эта задача выполняется cronjob и вызывающим xserver.