Доступ к stdin во время загрузки systemd - PullRequest
9 голосов
/ 21 января 2012

У меня есть скрипт, который запрашивает числовой ввод от пользователя при загрузке компьютера. На компьютере установлена ​​Fedora 16. Используется работа на Fedora 13, но после обновления

read INTEGER

возвращается немедленно, без перехвата ввода пользователя. Я пытался

read INTEGER
wait $!

но (как и ожидалось) это тоже не работает. Сценарий запускается из служебного файла systemd (см. Комментарии ниже). Он должен запускаться от имени пользователя root, а должен запускаться до того, как пользователь войдет в систему. В настоящее время он вызывает bash в качестве интерпретатора, но с некоторыми усилиями это можно изменить. Кто-нибудь может помочь вернуть этот скрипт в нормальное состояние?

Дополнительный кредит: в F13 он использовался для остановки загрузки для пользовательского ввода (по желанию), но ввод не отображался при вводе пользователем. Есть ли способ добавить эту функциональность?

1 Ответ

1 голос
/ 24 января 2012

Во время обычной загрузки клавиатура подключена к Плимуту (я считаю)

На Fedora, я думаю, вы хотите что-то вроде:

 plymouth ask-question --prompt="Pick a number between 0 and ∞" \
     --command="/usr/bin/numberguesser"

возможно с

     --dont-pause-progress

Что должно отображать экран приглашения Plymouth, не отличающийся от способа, которым крипто-файловые системы запрашивают свои пароли.

Обратите внимание, что /usr/bin/numberguesser получит только введенную строку, переданную по его стандартному вводу.

Не проверено , извините: - (

...