sct (setcolortemperature) разделяется с пользователем cron

  1. не используйте для для итерации по строки файла используйте

    , а IFS = read -r line; делать ...; done 
  2. вам вообще не нужно направлять вывод ls в файл, особенно , используя -F

  3. , используйте bash [[x == y]] для сравнения шаблонов, и шаблон находится справа:
#!/bin/bash
cd /mnt/backup
prefix="bkup_$(date +%Y%m%d_)"

for file in * .*; do
    [[ -f $file ]] || continue    # skip things like directories and soft links
    if [[ $file == $prefix* ]]; then
        echo "Copying " $file "to S3://auto-backup";
        s3cmd put $file s3://auto-backup
    fi
done < /tmp/file
-1
16.10.2018, 15:24
1 ответ

Это сочетание двух вещей:

  1. Вы не сказали программе, где находится ваш X-сервер.
  2. Программа М. Унангста вообще не выполняет проверку и обработку ошибок.

Программа должна наследовать DISPLAYпеременную среды, указанную в вашем crontab или в скрипте-оболочке, чтобы сообщить ей, где находится дисплей X-сервера, который вы хотите настроить. Ошибка сегментации, которую вы видите, является режимом отказа, если об этом не сказано.

Вы можете сообщить об этом как об ошибке.

У вас есть переменная DISPLAYв окружении оболочки, которую вы используете, вероятно, потому, что вы используете эмулятор терминала с графическим интерфейсом. Если бы вы вошли в среду без графического интерфейса -, например, в виртуальный терминал ядра/пользователя, реальный терминал или сеанс SSH без переадресации X11, вы бы увидели такое же поведение и при интерактивном вызове программы..

% DISPLAY= sct
zsh: segmentation fault  DISPLAY= sct
%

Дополнительная литература

2
28.01.2020, 05:08

Теги

Похожие вопросы