무한정 실행될 Python 스크립트를 작성했습니다. PyInotify
을 사용하여 디렉토리를 모니터하고 Multiprocessing
모듈을 사용하여 외부 스크립트를 통해 해당 디렉토리에서 작성된 새 파일을 실행합니다. 그것들은 모두 위대한 작품.파이썬 서비스 - 타임 스탬프가 포함 된 파일 이름 쓰기
내가 겪고있는 문제는 출력을 파일에 쓰는 것입니다. 내가 선택한 파일 이름은 현재 날짜 (datetime.now
사용)를 사용하며, 이론적으로 매 시간마다 켜져 있어야합니다.
now = datetime.now()
filename = "/data/db/meta/%s-%s-%s-%s.gz" % (now.year, now.month, now.day, now.hour)
with gzip.open(filename, 'ab') as f:
f.write(json.dumps(data) + "\n")
f.close() #Unsure if I need this, here for debug
불행히도 시간이 흐르면 출력이 멈추고 결코 반환되지 않습니다. 예외가 발생하지 않고 작동을 멈 춥니 다.
total 2.4M
drwxrwxr-x 2 root root 4.0K Sep 8 08:01 .
drwxrwxr-x 4 root root 12K Aug 29 16:04 ..
-rw-r--r-- 1 root root 446K Aug 29 16:59 2016-8-29-16.gz
-rw-r--r-- 1 root root 533K Aug 30 08:59 2016-8-30-8.gz
-rw-r--r-- 1 root root 38K Sep 7 10:59 2016-9-7-10.gz
-rw-r--r-- 1 root root 95K Sep 7 14:59 2016-9-7-14.gz
-rw-r--r-- 1 root root 292K Sep 7 15:59 2016-9-7-15.gz #Manually run
-rw-r--r-- 1 root root 834K Sep 8 08:59 2016-9-8-8.gz
그 파일이 정말 루트가 소유하지 않는, 그냥 대중 소비를 변경
당신이 볼 수 있듯이, 타임 스탬프에서 끝나는 모든 파일 : 59 다음 시간은 결코 일어나지 않습니다.
이 작업을 수행 할 때 고려해야 할 사항이 있습니까? 파이썬 스크립트를 무기한으로 실행하지 못한 것이 있습니까?
찍은 후. 마치 PyInotify가 내 문제였던 것 같습니다. 여기를 참조하십시오 (https://unix.stackexchange.com/questions/164794/why-doesnt-inotifywatch-detect-changes-on-added-files)
당신이 옳다고 생각합니다. 그것은 PyInotify 코드 자체와 관련이 있습니다. 디버깅을 돕기 위해 코드를 사용하겠습니다. – gleb1783
업데이트보기 - 당신이 옳았다. – gleb1783
업데이트 해 주셔서 감사합니다. –