xprintidle не работает в cronjob. Зачем?

У меня установлен lxle (Lubuntu) 12.04, и я потратил много времени в поисках рабочего решения для отключения ПК после некоторого периода бездействия.

После проверки многих программ, которые не работали, я решил потратить много времени на решение сценария оболочки, запущенного cronjob

Я застрял на 2 проблемы здесь.

  1. xprintidle не дает никаких результатов (пустая строка), когда он запускается cronjob - независимо от того, находится ли файл crontab или файл оболочки в этих средах, он просто выдает пустую строку вместо числа миллисекунд простоя.

  2. Во-вторых, мне кажется непросто запустить мой скрипт из crontab для завершения commend от имени root.

Не могли бы вы дать мне ссылку, объясняющую эту тему? Я знаю только sudo как пользователя, но скрипт не должен запрашивать пароль, а просто выключать систему.

1 ответ

Вам нужно установить переменную окружения DISPLAY перед ее вызовом, вы можете попробовать это в виртуальных консолях (Ctrl-Alt-F1), поскольку у них не установлена ​​переменная DISPLAY, они будут действовать точно так же, как и скрипт cron.

DISPLAY=:0 xprintidle

или же

export DISPLAY=:0
xprintidle

либо должно работать.

Другие вопросы по тегам