我是 Python 的新手,我正在尝试与我的家庭服务器同步自动同步。我发现了看门狗,我正在尝试使用它,但是每当我运行“touch test.txt”时,脚本就会不断启动新的统一进程。由于观察者使用的是从队列继承的类,我假设它应该在将第一个事件从队列顶部弹出后才阻塞。我在这里忽略了什么吗?
代码:
#!/usr/bin/python
import sys
import subprocess
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class ChangeHandler(FileSystemEventHandler):
def on_any_event(self, event):
subprocess.call(["/usr/bin/unison", "-batch", "-silent", "-ui", "text",
"default"])
if __name__ == "__main__":
observer = Observer()
observer.schedule(ChangeHandler(), '/home/philip', True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
输出:
props <-?-> props / props <-?-> props Documents props <-?-> props Downloads props <-?-> props / props <-?-> props Documents props <-?-> props Downloads props <-?-> props / props <-?-> props Documents props <-?-> props Downloads props <-?-> props / props <-?-> props Documents props <-?-> props Downloads props <-?-> props / props <-?-> props Documents props <-?-> props Downloads props <-?-> props / props <-?-> props Documents props <-?-> props Downloads