Предотвращение зависания "echo STRING > fifo", когда никто не читает этот FIFO

Предотвращение зависания "echo STRING > fifo", когда никто не читает этот FIFO

Когда я echoчто-то делаю в именованном канале с помощью mkfifo, он зависает, если ни один процесс не читает из этого канала. Как я могу предотвратить это, т. е. остановить зависание?

И кстати, почему этот echoпроцесс подвешивания не указан в ps -eили pstree?

решение1

Из вопроса не совсем ясно, какой конечный результат вы хотите получить, поэтому я предположу, что вы хотите продолжить программу, но при этом сохранить запись, когда это возможно. В этом случае просто переведите операцию в фоновый режим:

echo foo > fifo &

Что касается того, почему echoэто не указано в таблице процессов, то это потому, echoчто этовстроенная оболочка.

Связанный контент