Есть ли способ создать неблокирующий/асинхронный именованный канал или что-то подобное в оболочке? Чтобы программы могли размещать в нем строки, эти строки оставались бы в баре, и когда какая-то программа могла читать некоторые строки из трубы, оставив то, что она не читала в fifo? Также очень вероятно, что программы могут писать и читать в этот fifo одновременно. Сначала, хотя, возможно, это может быть сделано с использованием файлов, но после поиска в Интернете немного, кажется, ничего хорошего не может исходить из того, что файл читается и записывается в одно и то же время. Именованные трубы почти сработали, просто есть две проблемы: сначала они блокируют чтение/запись, если на другом конце нет никого, во-вторых, даже если я позволю писать на заблокированный и установить два процесса для записи на канал, пока никто не читает, пытаясь написать одну строку с каждым процессом, а затем попробуйте head -n 1 <fifo>
Я получаю только одну строку, как мне нужно, но оба процесса записи завершаются, а вторая строка теряется. Какие-либо предложения?
Изменить: может быть, какая-то промежуточная программа может быть использована для этого, действуя как посредник между писателями и читателями?