Найден ответ -это ошибка ядра до версии 3.18. Поведение вызвано firejail :https://github.com/netblue30/firejail/issues/574
Is there a simple way to make sure they are in expected order without having to using temporary files/named fifos? May be opening some file descriptor redirection would help?
Не совсем так. Подоболочки >(...)
и ...|...
работают параллельно. Кроме того, unix-каналы/терминалы/потоковые сокеты/и т. д. не являются граничными -с сохранением --нет гарантии, что одна запись не превратится в несколько операций чтения на другом конце (или наоборот -наоборот ).
Чтобы навести порядок, вы можете использовать рекомендательную блокировку. --посмотрите справочные страницыflock(1)
и flock(2)
. Как это сделать, во многом зависит от того, как работают программы subshell
и mainshell
. Слепая блокировка -не взаимодействующих программ легко приводит к взаимоблокировкам (, если вообще работает ).