На основе этого чрезвычайно полезного ответа Запустите KeePassXC при загрузке , я почти получил желаемый результат разблокировки keepassxc
при входе в систему для работы.
Однако у меня (и еще одного пользователя, который ответил и прокомментировал ту же проблему) осталась одна проблема, которая мешает его полезности. А именно, в соответствии с ответом по ссылке, я даю команда ...
поиск секретного инструмента keepass
... и это работает в этом keepassxc
запущен ... но я получаю это приглашение на следующей строке после команды
Пароль базы данных:
, и сценарий зависает в ожидании ввода.
Части сценария работают ... Я могу выполнить
secret-tool lookup keepass
и набрать правильный пароль.
Я могу выдать
echo
, и он запускает keepassxc
и входит в систему ... но я все еще получаю приглашение и скрипт зависает.
Если я сделаю
echo <пароль> | keepassxc --pw-stdin
Я все еще получаю приглашение и зависаю, но могу нажать , ввести
, и это сработает.
Получается, что мне нужно как-то ввести ввод
?
Короткий ответ
То, что вы видите, это нормальное поведение. Терминал будет освобожден только после завершения работы KeePassXC.
Длинный ответ
Пароль базы данных: подсказка
, которую вы видите на терминале, является результатом опции --pw-stdin
, которую вы включили в опцию keepassxc
. Так как существует труба, стандартным вводом является не клавиатура, а вывод предыдущей команды echo
.
До тех пор, пока запущен KeepassXC, приглашение блокируется. Это нормально и происходит с любой другой программой. Например, попробуйте запустить nautilus
на терминале.
Вы можете отпустить запрос, переместив процесс в фоновом режиме: нажмите Ctrl+Z, затем наберите bg
, чтобы продолжить выполнение процесса в фоновом режиме. fg
снова выведет его на передний план. Это "традиционная" терминальная практика.
С выходом процесса на передний план, терминал будет освобожден при выходе из KeePassXC, либо от выхода в графическом интерфейсе пользователя, либо нажатием Ctrl+C в терминале.
Такое поведение незаметно, когда вы не запускаете команду от терминального эмулятора, например, от настольного пускового устройства или от привязки клавиш быстрого доступа, или даже используя диалог запуска Alt+F2.