나는 한동안이 문제를 겪었습니다.
상상하다
제가 하고 싶은 것은 CLI를 사용하여 프로그램을 실행하는 것입니다. 프로그램은 한 번에 하나의 명령을 받아 실행합니다. 대부분의 경우 이러한 명령은 일괄적으로 실행됩니다. 따라서 하나의 스트림에서 일련의 명령을 캡처하는 것은 매우 효율적이지만 때때로 수동 개입을 위해 키보드를 통해 몇 가지 추가 명령을 보내고 싶습니다.
나는 그것을 해결하려고 노력한다
아래와 같이 명명된 파이프를 사용하고 아래 표시된 대로 모두 동일한 파일 설명자로 리디렉션했습니다.
선입선출
$ mkfifo /tmp/testpipe
$ mknod /tmp/testpipe p
리디렉션
{ cat /tmp/testpipe &
cat - &
wait; } | consumer_process
인용하다:여러 파이프를 함께 연결하는 "티"의 반대 기능이 있습니까?
질문
위에서 설명한 설정을 사용하면 처음으로 명명된 파이프에 무언가를 밀어 넣을 때 예상대로 잘 작동하지만 두 번째로 파이프에 무언가를 밀어 넣으면 소비자 프로세스에 도달하지 못합니다.
문제를 해결하려는 시도가 실패했습니다.
명명된 파이프를 캡처하고 반대쪽 끝에서 에코해 보세요. 처음에는 효과가 있었지만 두 번째에는 효과가 없었습니다.
첫 학기
cat /tmp/testpipe &
두 번째 학기
echo "TESTING123" > /tmp/testpipe --> Received on term 1
echo "TESTING123" > /tmp/testpipe --> Nothing received on term 1
이 문제를 해결하거나 이 작업을 더 쉽게 수행할 수 있는 방법이 있습니까?