tty мигает курсором не в точке вставки

Макрос AC_PROG_MKDIR_Pпредставляет собой макрос тестирования функций. Он расширяется до шелл-кода, который проверяет наилучшую доступную команду mkdir -p-. Он использует MKDIR_Pиac_cv_path_mkdir(«переменную кэша» ), чтобы выяснить, какую команду использовать.

Вы можете установить значение MKDIR_Pдля команды, которую хотите использовать для создания каталогов. Используемая вами команда должна иметь возможность создавать не только один каталог, но и родительские каталоги, если они еще не существуют (, точно так же, как mkdir -pделает ).

Нормальный:

$./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... gawk
...

При установке MKDIR_P:

$./configure MKDIR_P='install -d -m 0755'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... install -d -m 0755
checking for gawk... gawk
...

Согласно документации , можно сделать это «постоянным», установив переменную кэша ac_cv_path_mkdirв требуемую команду. Эту переменную можно установить непосредственно в скрипте configure(уродливый )или изменив созданный файл config.cacheпосле однократного запуска configureс опцией -C. Однако , я обнаружил, что configureдобавляет опцию -pк значению этой команды, которая может быть нежелательной (значение этой опции отличается между mkdirи install).

Если вас устраивает повторно -генерация configureскрипта из его configure.acисточника, вы можете установить MKDIR_Pв значение сразу после вызова AC_INIT. Затем запуститеautoconf(или autoreconf), чтобы воссоздать configure.

Наиболее гибким способом было бы установить переменную окружения MKDIR_Pв текущем сеансе оболочки с помощьюexport MKDIR_P='install -d'(или чего угодно ). Это не потребует изменения каких-либо файлов, но повлияет на все сценарии configure, которые вы запускаете в этом сеансе оболочки.

2
19.04.2015, 21:05
1 ответ

Проблема вызвана тем, что systemd -fsck печатает '\r'в /dev/console. Таким образом, терминал tty1 должен ждать, пока systemd -fsckd не станет неактивным. Мое предварительное исправление в моей системе Ubuntu 18.04.4 включает файл/etc/systemd/system/getty@tty1.service.d/override.conf:

[Unit]
After=boot-efi.mount
After=systemd-fsckd.service

[Service]
ExecStart=
ExecStart=-/usr/local/bin/delaytty1.sh $TERM
Type=idle

Скрипт /usr/local/bin/delaytty1.sh читает:

#!/bin/sh
a="active"
while [ $a = "active" ]; do
sleep 1
a=$(/bin/systemctl is-active systemd-fsckd.service)
done
/sbin/agetty --noclear tty1 $1
1
04.08.2020, 07:02

Теги

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