때때로 다른 프로세스가 덮어쓴 파일을 읽는 경우가 있습니다.

때때로 다른 프로세스가 덮어쓴 파일을 읽는 경우가 있습니다.

gpscsv --header 0 -n 1 > /tmp/location나는 10초 또는 15초마다 GPS 위치를 업데이트 하는 시스템 서비스/타이머를 작성했습니다 .

텍스트 파일을 확인하면 watch -n 1 cat /tmp/location반환된 인스턴스가 있습니다.텍스트 없음새로운 데이터가 도착하기 직전입니다.

의 GPS 위치를 사용하는 다른 스크립트를 작성할 예정인데 /tmp/location, 이러한 "쓰기 중 읽기" 상황에 덜 취약하게 만들려면 어떻게 해야 합니까?

답변1

파일에 쓰지 마세요!

당신은 GPS를 가지고, 따라서 이를 데몬으로 사용하십시오. 이것이 데몬이 발명된 사용 사례입니다. /tmp/location스크립트는 에서 읽는 대신 자체 호출해야 하며, gpscsv그러면 GPSD에서 위치를 가져옵니다.

관련 정보