Вопрос, которому отвечают, с помощью xinput является правильным, но здесь является быстрым, если все, что Вы ищете, является простой блокировкой типа экранной заставки. Я записал обратно это в 90-х и все, что это делает, едят события клавиатуры X-сервера и события от нажатия мыши, пока Вы не вводите пароль. Никакая обратная связь вообще кроме выхода, когда Вы вводите его правильно.
http://ishiboo.com/~danny/Projects/xl/
Я использую его в качестве экранной блокировки, точно как Вы хотите использовать его.
В
echo 'one' > /tmp/a
Оболочка делает open(O_WRONLY)
на канале и затем мечет икру echo
который затем делает write("one\n")
.
open
заблокируется, пока некоторый другой процесс не открывает канал в RD_ONLY
или RD_WR
все же.
И - также open
от Вашего echo two
.
Таким образом, в данный момент Вы делаете more /tmp/a
у Вас есть два процесса, готовые стрелять, которые не открыли FIFO еще уже не говоря о записанном ничто к нему. Какой из тех двух будет запланирован как только more
делает open(RD_ONLY)
будет случайным.
Чтобы постараться не блокироваться, Вы могли сделать:
exec 3<> /tmp/a
чтобы разблокировать канал сначала и затем выполнить Ваши команды, которые не заблокируются, до, канал полон.
Обратите внимание однако, что вышеупомянутое будет работать над Linux, но не над каждым Unix или подобный Unix. Поведение при открытии канала в режиме чтения-записи является неуказанным POSIX.