나는 다른 세계에서 유닉스로 뛰어 들었고,
while true
do
/someperlscript.pl
done
perl 스크립트 자체에는 내부에 파일이 대상 위치에서 변경 될 때 실행되는 폴더 / 파일 감시자가 있습니다.
이것이 while true
좋은 생각입니까? 그렇지 않은 경우 선호되는 강력한 접근 방법은 무엇입니까?
티아
편집 : 이것은 상당한 관심을 불러 일으킨 것으로 보이므로 여기에 전체 시나리오가 있습니다. perl 스크립트 자체는 파일 감시자를 사용하여 디렉토리를 감시합니다. 새 파일을 받으면 (rsync를 통해 도착) 새 파일을 가져 와서 처리합니다. 이제 들어오는 파일이 손상되었을 수 있습니다 (요청하지 마십시오. 라즈베리 파이에서 나옴). 때로는 프로세스에서 처리하지 못할 수도 있습니다. 우리는 아직 모든 시나리오를 알지 못하기 때문에 이유를 정확히 알지 못합니다.
그러나 어떤 이유로 프로세스가 실패하면 다음 파일이 오류를 일으킨 이전 파일과 완전히 관련이 없으므로 프로세스가 시작되어 다음 파일을 처리하기를 원합니다.
일반적으로 나는 일종의 catch를 사용하고 전체 코드를 감싸서 충돌하지 않도록했습니다. 그러나 펄은 확실하지 않았다.
내가 이해 한 바에 따르면 supervisord와 같은 것을 사용하는 것이 좋습니다.
inotify
대상 디렉토리에서 파일이 변경 될 때까지 대기중인 루프를 피할 수 있도록 API 를 점검 할 수 있습니다.