Отображение сообщения пользователю во время автоматической предварительной установки Debian

В течениеlate_commandшаг автоматической установки, я запускаю сценарий оболочки:

d-i preseed/late_command string in-target /bin/sh -c './execute-script.sh'

Когда достигается шаг late_command, в пользовательском интерфейсе (синий фон, серое окно) отображается сообщение «Выполняется предварительное задание...»:

Мне интересно, есть ли какой-нибудь способ живого отображения других сообщений на основе того, чтоexecute-script.shделается.

Я наивно думал, что использование обычного STDOUT с эхом поможет, но это кажется более сложным.

Мои поиски до сих пор привлекли мое внимание к потенциальному использованиюdebconfно я не смог найти никакого способа.

Текущая версия моего скрипта изменена в соответствии с ответом @Andrew:

      #!/bin/sh

. /usr/share/debconf/confmodule
. "./variables.sh"

logFile="/target${INSTALLATION_LOG_LOCATION}"
templatePath="/target/tmp/deployment_progress_tracker.templates"

cat > "${templatePath}" << 'EOF'
Template: deployment_progress_tracker/progress/fallback
Type: text
Description: ${STEP}...
EOF

debconf-loadtemplate deployment_progress_tracker "${templatePath}"
db_progress START 0 1 deployment_progress_tracker/progress

watchLogs () {
  deploymentDone=false
  while ! $deploymentDone
  do
    if [ -f "${logFile}" ]; then
      step=$(grep -E -o -a -h "Progress-step: .*" "${logFile}" | tail -1 | sed 's/Progress-step: //')
      if [ -z "${step##*$DEPLOYMENT_FINISHED*}" ]; then
        deploymentDone=true
      elif [ -n "${step}" ]; then
        db_subst deployment_progress_tracker/progress/fallback STEP "${step}"
        db_progress INFO deployment_progress_tracker/progress/fallback
      fi
    fi
    sleep 3
  done
}



(
  watchLogs;
  rm -f "${templatePath}";
  db_progress SET 1;
  sleep 1;
  db_progress STOP;
  db_unregister deployment_progress_tracker/progress;
) &

Предыдущий скрипт приведет к следующему:

И ведет обратно в меню установщика (выбор «Завершить установку» фактически приведет к повторному запуску предварительно заданной части и сбою, выбор «Прервать» не приведет к размонтированию ISO и перезагрузке, в любом случае я пытаюсь выполнить и размонтирование, и перезагрузку автоматически):

0 ответов

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