2014-01-08 51 views
0

我在我的家目錄(/ home/name)下使用pyinotify放置腳本並運行它。雖然我無法使腳本看我的家目錄(/ home/name)或包含我的主目錄的目錄,例如root(/)和/ home /。所有其他目錄都可以,例如/ var,/ boot,/ home/name/Documents。pyinotify無法觀看當前目錄

讓我描述它在一個乾淨的方式:

dirs that are NOT OK: 
/
/home 
/home/name (script is here) 

All other dirs are OK, e.g. 
/bin 
/var 
/home/name/Documents 

腳本:

import pyinotify 

class MyEventHandler(pyinotify.ProcessEvent): 
    def process_IN_ACCESS(self, event): 
     print "ACCESS event:", event.pathname 

    def process_IN_ATTRIB(self, event): 
     print "ATTRIB event:", event.pathname 

    def process_IN_CLOSE_NOWRITE(self, event): 
     print "CLOSE_NOWRITE event:", event.pathname 

    def process_IN_CLOSE_WRITE(self, event): 
     print "CLOSE_WRITE event:", event.pathname 

    def process_IN_CREATE(self, event): 
     print "CREATE event:", event.pathname 

    def process_IN_DELETE(self, event): 
     print "DELETE event:", event.pathname 

    def process_IN_MODIFY(self, event): 
     print "MODIFY event:", event.pathname 

    def process_IN_OPEN(self, event): 
     print "OPEN event:", event.pathname 

def main(): 
    # watch manager 
    wm = pyinotify.WatchManager() 
    wm.add_watch('/var/log', pyinotify.ALL_EVENTS, rec=True) 

    # event handler 
    eh = MyEventHandler() 

    # notifier 
    notifier = pyinotify.Notifier(wm, eh) 
    notifier.loop() 

if __name__ == '__main__': 
    main() 
+0

你得到了什麼錯誤(例如「Errno = Permission denied(EACCES)」)?什麼是目錄權限? – Demyn

+0

沒有輸出,這是我的家庭目錄。我擁有所有權限。我粘貼上面的腳本。 –

+0

您需要將手錶添加到家中。 –

回答

1

認爲你需要指定一個手錶到您的家目錄。

wm.add_watch('/home', pyinotify.ALL_EVENTS, rec=True) 
+0

哦,對不起。我可能會迷惑你。我知道我需要指定路徑。我嘗試了以下路徑:'/ home','/','/ home/','/ var/log','/ boot',但該腳本無法與前三條路徑一起使用。 –