Добрый день!
Возможно я туплю, но не нашел решения. Итак, есть терминал /dev/pts/0
в котором запущен bash
:
[rav@nixos:~]$ sudo lsof /dev/pts/0
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
.konsole- 4572 rav 19u CHR 136,0 0t0 3 /dev/pts/0
bash 4582 rav 0u CHR 136,0 0t0 3 /dev/pts/0
...
top 22527 rav 0u CHR 136,0 0t0 3 /dev/pts/0
...
в дереве процессов pstree
все выгдялит логично:
| | |-+- 04572 rav /etc/profiles/per-user/rav/bin/konsole
| | | |-+= 04582 rav /run/current-system/sw/bin/bash
| | | | \--= 22527 rav top
в это время в терминал /dev/pts/0
приходит программа pinentry
и предлагает свое диалоговое окно пользователю:
[nix-shell:~]$ sudo lsof /dev/pts/0
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
.konsole- 4572 rav 19u CHR 136,0 0t0 3 /dev/pts/0
...
bash 4582 rav 255u CHR 136,0 0t0 3 /dev/pts/0
...
top 22527 rav 3u CHR 136,0 0t0 3 /dev/pts/0
.pinentry 22992 rav 10r CHR 136,0 0t0 3 /dev/pts/0
...
но она не является потомком запущеного там bash
:
| |-+= 01874 rav /nix/store/h7qn6nl04qplrsnqlgwxp72rsg4cil9r-gnupg-2.4.5/bin/gpg-agent --supervised
| | |--- 22992 rav pinentry
| | \--- 22843 rav scdaemon --multi-server
отсюда наблюдается интересная картина, когда устройством терминала /dev/pts/0
пытаются пользоваться 2 ничего не знающие друг о друге программы. И часть вводимых с клавиатуры символов рандомно попадают то в одну, то в другую. Вопрос, как сделать так, что бы весь ввод попадал в pinentry