Lösung für das Problem mit pyinotify und DSM 6

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Technosoft2000

Benutzer
Registriert
25. März 2016
Beiträge
7
Reaktionspunkte
0
Punkte
0
Durch das DSM 6 Update war pyinotify nicht mehr vorhanden und hat nach erneuter installation mittels PIP
Rich (BBCode):
pip install pyinotify
hat folgender Aufruf
Rich (BBCode):
python -m pyinotify -v /tmp/
folgenden Fehler verursacht:
Rich (BBCode):
root@TS2K-DS415PLUS:/# python -m pyinotify -v /tmp/
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/site-packages/pyinotify.py", line 2386, in <module>
    command_line()
  File "/usr/lib/python2.7/site-packages/pyinotify.py", line 2340, in command_line
    wm = WatchManager()
  File "/usr/lib/python2.7/site-packages/pyinotify.py", line 1776, in __init__
    self._inotify_wrapper = INotifyWrapper.create()
  File "/usr/lib/python2.7/site-packages/pyinotify.py", line 128, in create
    if inotify.init():
  File "/usr/lib/python2.7/site-packages/pyinotify.py", line 212, in init
    libc_name = ctypes.util.find_library(try_libc_name)
  File "/usr/lib/python2.7/ctypes/util.py", line 247, in find_library
    raise RuntimeError("can not find library %s" % name)
RuntimeError: can not find library c

Folgender WORKAROUND hilft vorerst - mittels Editor die Datei /usr/lib/python2.7/site-packages/pyinotify.py patchen

Ab Zeile 211 muss der Code
Rich (BBCode):
        try:
            libc_name = ctypes.util.find_library(try_libc_name)
        except (OSError, IOError):
            pass  # Will attemp to load it with None anyway.
angepasst werden - man muss im 'except' Abschnitt den 'RuntimeError' zusätzlich auffangen
Rich (BBCode):
        try:
            libc_name = ctypes.util.find_library(try_libc_name)
        except (OSError, IOError, RuntimeError):
            pass  # Will attemp to load it with None anyway.

Danach war eine Ausführung möglich.

Bei mir trat nun auch der Fehlerfall auf:

WD=-1 or the message No space left on device (ENOSPC) whenever I try to add a new watch

in der FAQ - https://github.com/seb-m/pyinotify/wiki/Frequently-Asked-Questions steht dann folgender Hinweis:

You must have reached your quota of watches, type
Rich (BBCode):
sysctl -n fs.inotify.max_user_watches
to read your current limit and type (mein Wert war 8192)
Rich (BBCode):
sysctl -n -w fs.inotify.max_user_watches=16384
to modify (increase) it.

Nach der Änderung wie in der FAQ ging alles einwandfrei :)

Ein guter Einstieg für pyinotify und dem automatischen Indexen ist folgender Blog Artikel übrigens
https://codesourcery.wordpress.com/...ynology-nas-automatically-indexing-new-files/

Gruß
TS2k
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat