1

Я искал во всем интернете ответ на этот вопрос, но, похоже, не могу найти ничего подходящего для меня.

Я хочу запустить работу cron, которая автоматически делает снимок экрана каждую минуту. Сценарий выглядит так:

#!/bin/bash
cd /home/ville/Skrivbord/screenshot
import -display :0 -win root screenshot.jpg

Код работает нормально, когда выполняется вручную, но не работает, когда я запускаю его как задание cron.

Файл cron выглядит так:

* * * * * /root/bin/screen.bash &> /dev/null
* * * * * /root/bin/syncdata.bash

Другая задача, syncdata работает отлично.

Вот некоторые из вещей, которые я попробовал без успеха:

Измените разрешения на /root/bin/screen.bash и /home /ville /Skrivbord /screenshot на 777 и измените владельца на root.

Измените имя файла на screen.sh (возможно, нет разницы между .bash и .sh?)

Измените строку импорта на «import -win root screenshot.jpg» и «import -display:0.0 -win root screenshot.jpg».

Добавлен код:

# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY

Один раз выше существующего кода в screen.bash и один раз ниже.

Изменена строка в cron на "* * * * * export DISPLAY =:0 && /root/bin/screen.bash".

Ничего не работает!

пожалуйста, помогите мне

1 ответ1

2

Программы, запущенные демоном cron , не имеют данных аутентификации, необходимых для подключения к вашему X-серверу. Попробуйте добавить что-то подобное в ваш ~/.xprofile:

if [ "$XAUTHORITY" ]; then
    cp -f "$XAUTHORITY" ~/.Xauthority
fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .