Toon posts:

[unix/linux] filesystem events?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Naar aanleiding van [rml][ java] Directory Listener?[/rml] vroeg ik me af of je uberhaupt events kan afvangen met betrekking tot het filesystem. Dus voornamelijk het toevoegen en verwijderen van een bestand. Kan dat onder een unisecs/linux?

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Dat zou dan in de kernel moeten zitten, en voor zover ik weet is dat bij Linux nog niet het geval.
Als je het leuk vindt, kun je natuurlijk altijd een modificatie van een Linux kernel bouwen, waarin een filesystem create aanroep leidt tot een aanroep van een hook methode ofzo :)

Bij mijn weten bestaat zo iets nog niet, in ieder geval niet in de meest populaire Linux en BSD distributies. Als je praat over "unices" dan moet je meteen naar andere smaakjes van Unix als Solaris, HP UX, IRIX etc. gaan kijken, en daar durf ik geen uitspraken over te doen :)

Edit: Ik bedenk me net dat de spotlight technologie die Apple in haar Mac OS X besturingssysteem in heeft gebouwd wel met zo'n dergelijk systeem moet kijken. Misschien kun je eens kijken of dat gedeelte van Darwin perongeluk open source is. (Darwin is geloof ik Mach, dus zo zeker is dat niet).

[ Voor 22% gewijzigd door dawuss op 28-02-2005 18:15 ]

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


Verwijderd

Topicstarter
Hmm, nou bedankt iig. In de kernel heeft voor mij geen zin, het moet toch wel crossplatform werken. Nou dan maar iets anders verzinnen.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Onder irix heb je de file alteration monitor daemon (fam/famd), die bij mijn weten ook naar linux en misschien een of meer van de vrije BSD's is geport, misschien heb je daar wat aan.
(ik verander je topictitel even trouwens, het duurde nogal voor ik uberhaupt doorhad wat unisecs was [norml]:)[/]

Verwijderd

Topicstarter
Geweldig door even te zoeken naar famd kwam ik voor linux dnotify tegen. Maar dat betekend dus helaas voor mij wel dat ik voor elk een apparte implementatie moet schrijven :(

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Doh, van famd had ik ook wel eens gehoord, dus dat had ik kunnen weten :P
Een echte cross-platform implementatie ga je sowieso niet vinden: De Java VM heeft nu eenmaal geen ondersteuning voor deze toepassing, omdat niet alle systemen waar die machine op kan draaien dit kunnen verzorgen (denk aan Windows met FAT32).
Ik ben bang dat je dit inderdaad zult moeten implementeren voor alle platformen die je wilt ondersteunen :)

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


Verwijderd

Topicstarter
dawuss schreef op maandag 28 februari 2005 @ 22:31:
De Java VM heeft nu eenmaal geen ondersteuning voor deze toepassing, omdat niet alle systemen waar die machine op kan draaien dit kunnen verzorgen (denk aan Windows met FAT32).
Juist windows lijkt het enige OS te zijn wat wel heeft nagedacht over deze in mijn ogen onmisbare functionaliteit :/

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 16:47

BoAC

Memento mori

Ik heb nog ff gezocht: Watching filesystem events with inotify
Ik weet niet of het toereikend is maar het lijkt mij wel interessant ;)

En hier nog wat info: inotify for Linux :P

Inotify is dus de opvolger van dnotify en is nog niet in de stable versies van de Linux kernel opgenomen (tot 2.6.8-r10)

En nou stop ik met zoeken ... ;)

[ Voor 56% gewijzigd door BoAC op 01-03-2005 10:54 ]


  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

FreeBSD heeft kevent, wat oa filesystem events kan monitoren en op basis van changes in je filesystem een event in een userland app kan triggeren.

Wordt ook veel gebruikt voor networking sockets omdat het zo lekker snel is :)

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 16:47

BoAC

Memento mori

@TS: Je zult dus wil je met events werken een wrapper moeten maken voor elk OS waar het op moet draaien of gewoon gaan pollen wat wel 'bijna' Platform onafhankelijk kan ;)
Verwijderd schreef op maandag 28 februari 2005 @ 22:43:
[...]

Juist windows lijkt het enige OS te zijn wat wel heeft nagedacht over deze in mijn ogen onmisbare functionaliteit :/
Is daarvoor dan een Java implementatie te vinden?

[ Voor 48% gewijzigd door BoAC op 01-03-2005 11:23 ]


Verwijderd

Topicstarter
BoAC schreef op dinsdag 01 maart 2005 @ 11:22:
@TS: Je zult dus wil je met events werken een wrapper moeten maken voor elk OS waar het op moet draaien of gewoon gaan pollen wat wel 'bijna' Platform onafhankelijk kan ;)
Ja ik zit nog te twijfelen tussen pollen of een repository middels EJB's. Voordeel van pollen is dat ik inderdaad met elk stukje software een bepaalde directory kan beheren zonder dat het ergens in de soep loopt, maar kost wel veel meer processor kracht. Met ejb's laat ik alle io daar door lopen en simuleer ik dus de events die ik wil hebben. Nadeel is dat ik vanuit bijvoorbeeld een ftp programma lastiger kan toevoegen aan de repository (waar ik natuurlijk een java ftp server voor zou kunnen ombouwen).
BoAC schreef op dinsdag 01 maart 2005 @ 11:22:
Is daarvoor dan een Java implementatie te vinden?
Ja, een class com.jniwrapper.win32.io.FileSystemWatcher genaamd.

[ Voor 5% gewijzigd door Verwijderd op 01-03-2005 13:38 . Reden: class naam opgezocht ]

Pagina: 1