簡體   English   中英

Python看門狗:為什么我的子進程連續被調用?

[英]Python Watchdog: Why is my subprocess called continuously?

我是Python的新手,我正在嘗試自動協調與家庭服務器的同步。 我發現了看門狗,並試圖使用它,但是每當我運行“ touch test.txt”時,腳本就會不斷啟動新的協調進程。 由於觀察者使用的是從Queue繼承的類,因此我假設它應該在將第一個事件彈出隊列頂部之后立即阻塞。 我在這里忽略了什么嗎?

碼:

#!/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

OP在評論中充分回答了這一點:

經過與pyinotify的合作,終於了解到我正在同步目錄,同時在同一目錄中監視文件系統事件。 當然,除非處理事件時掛起Observer / Notifier,否則我會接到多個電話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM