xprintidle не работает в cronjob. Зачем?
У меня установлен lxle (Lubuntu) 12.04, и я потратил много времени в поисках рабочего решения для отключения ПК после некоторого периода бездействия.
После проверки многих программ, которые не работали, я решил потратить много времени на решение сценария оболочки, запущенного cronjob
Я застрял на 2 проблемы здесь.
xprintidle не дает никаких результатов (пустая строка), когда он запускается cronjob - независимо от того, находится ли файл crontab или файл оболочки в этих средах, он просто выдает пустую строку вместо числа миллисекунд простоя.
Во-вторых, мне кажется непросто запустить мой скрипт из crontab для завершения commend от имени root.
Не могли бы вы дать мне ссылку, объясняющую эту тему? Я знаю только sudo как пользователя, но скрипт не должен запрашивать пароль, а просто выключать систему.
1 ответ
Вам нужно установить переменную окружения DISPLAY перед ее вызовом, вы можете попробовать это в виртуальных консолях (Ctrl-Alt-F1), поскольку у них не установлена переменная DISPLAY, они будут действовать точно так же, как и скрипт cron.
DISPLAY=:0 xprintidle
или же
export DISPLAY=:0
xprintidle
либо должно работать.