sudo будет работать без tty и отображения, поэтому ваша команда не будет работать.
Попробуйте установить xvfb и используйте
0 18 * * * cd /home/pi/gui && xvfb-run python3 gui.py
Update-1: 22-Jun-18
Если вы хотите использовать свой фактический дисплейтогда вам нужно убедиться, что вы используете приведенную ниже команду
XAUTHORITY=/home/<user>/.Xauthority DISPLAY=:0 python3 gui.py
, а также убедиться, что cron предназначен для вашего пользователя.По умолчанию DISPLAY
равно :0
.
Если у вас есть XServer (дисплей с графическим интерфейсом), вы не можете просто подключиться к нему без авторизации.При запуске системы создается файл, и это местоположение сохраняется в переменной окружения XAUTHORITY.
Когда вы запускаете cron, у вас ограниченные переменные окружения.Не существует существующих XAUTHORITY
или DISPLAY
, определенных для возможности подключения к необходимому дисплею.Поэтому вам нужно определить каждую переменную среды, которая потребуется вашей программе
Итак, вы определяете DISPLAY=:0
, чтобы выбрать отображение по умолчанию, и вам нужно установить XAUTHORITY=/home/<user>/.Xauthority
, чтобы доказать, что вы авторизованы для подключения кдисплей