Привет я записал простой сценарий командной строки, который является, предполагают для делания моего снимка экрана каждые 5 минут.
(использование программы "импорта" ImageMagick)
вот сценарий (shottr.sh):
#!/bin/sh
PTH="/home/username/images"
NM=`date +%j`_`date +"%F %k:%M"`
/usr/bin/import -window root -resize 1024 "$PTH/$NM.png" &
echo "Screenshot" | festival --tts &
это хорошо работает, если я выполняюсь вручную т.е.:
# ./shottr.sh
или
#sh shottr.sh
крон установлен как это:
*/5 * * * * /bin/sh /home/username/scripts/shottr.sh
сам сценарий выполняется (я слышу, что речь говорит: "Снимок экрана"), но фактический снимок экрана не сделан.
P.S.: уверьте, что это не проблема разрешения (я поместил простой "сенсорный" вызов, и файл был создан),
может быть то, если это выполняется от крона... это не имеет "окна", таким образом, это не может сделать снимок экрана из ниоткуда?? Если это так, затем как может я обходное решение это?
Когда Вы запускаете скрипт от cron
это не имеет доступа к Вашему DISPLAY
переменная среды, которая является, как она знает то, что отображают X11, с которым можно взаимодействовать. Вы можете заставлять это работать путем добавления следующего к сценарию:
# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY
Это предполагает что Ваш DISPLAY
всегда :0
, который верен, если Вы входите в систему на консоли, но не верные, если Вы работаете X удаленно.