로컬 파일에서 http URL의 내용만 읽는 프로세스를 제공하고 싶습니다. 프로세스는 현재 작업 디렉터리의 특정 파일을 읽고, 특정 이벤트가 발생할 때 이를 읽도록 하드코딩된 데몬입니다.
파일 읽기를 트리거하는 이벤트를 제어할 수 없으며 컬 스크립트를 통해 지속적으로 데이터를 파일에 덤프하는 대신 거의 실시간 데이터를 제공하고 싶습니다.
내가 생각하기에 작동할 것이라고 생각하는 것은 명령을 읽을 때마다 명령을 실행하는 fifo입니다. 그런 다음 netcat 또는 컬에 연결하여 URL(xml 데이터)의 내용을 검색합니다. 가능합니까?
답변1
일반 파일 시스템에서 읽기 위해 파이프에서 프로세스를 시작하는 것은 불가능합니다. 그러나 귀하의 필요에 맞는 다른 방법이 있습니다.
콘텐츠 생성 프로그램을 루프로 실행할 수 있습니다. FIFO가 쓰기 위해 열릴 때마다 판독기가 나타날 때까지 차단됩니다.
while true; do
generate-content >fifo
done
또 다른 방법은퓨즈원하는 대로 파일 시스템 생성 - 판독기에 반환된 데이터는 일반 프로그램인 파일 시스템 드라이버에 의해 생성되므로 원하는 대로 작동하도록 만들 수 있습니다. FUSE 파일 시스템 드라이버를 구축하려면 많은 작업이 필요하므로을 찾다이것은 정확히 필요한 작업을 수행하며 약간 과잉일 수 있습니다. 도움이 될 수 있는 일부 파일 시스템은 다음과 같습니다.
- 스크립트 파일 시스템— 설명에 따르면 "로컬 파일 시스템을 복사하되 결과를 실행하여 '스크립트'로 감지된 모든 파일을 교체합니다."가 바로 필요한 것입니다. 나는 그것을 사용한 적이 없습니다.
- HTTPFS— 파일을 읽으면 네트워크 다운로드가 트리거되고 이를 로컬 호스트에 연결하고 작은 웹 서버를 실행합니다.경량또는thttpd동적 콘텐츠를 제공하기 위해 CGI 또는 유사한 방법을 지원합니다. 필요한 데이터가 웹 서버에서 이미 다운로드된 경우 HTTPFS를 가리키기만 하면 됩니다.