pystyykö linuxilla jotenkin valvomaan kun tiedostoa yritetään lukea?
eli käytössä on pääte joka ilman ikkunointia ajaa operan selainta. operan selaimessa voi olla saapuvan postin merkkiäänenä .wav-tiedosto. päätteessä ei ole kaiuttimia vaan pelkkä pc-piippari.
ajattelin että kun opera yrittää toistaa vaikka piip.wav-äänen, toinen ohjelma tajuaa sen ja suorittaa ohjelman beep joka piippaa kaiuttimia.
en tiedä onko tuo mitenkään järkevä lähestymistapa vai pitäisikö tehdä mieluummin skripti, joka valvoo operan maili-tiedostoja ja niiden muuttuessa piippaa?
eli käytössä on pääte joka ilman ikkunointia ajaa operan selainta. operan selaimessa voi olla saapuvan postin merkkiäänenä .wav-tiedosto. päätteessä ei ole kaiuttimia vaan pelkkä pc-piippari.
ajattelin että kun opera yrittää toistaa vaikka piip.wav-äänen, toinen ohjelma tajuaa sen ja suorittaa ohjelman beep joka piippaa kaiuttimia.
en tiedä onko tuo mitenkään järkevä lähestymistapa vai pitäisikö tehdä mieluummin skripti, joka valvoo operan maili-tiedostoja ja niiden muuttuessa piippaa?
Vastaukset 2
Vanhimmat
> pystyykö linuxilla jotenkin valvomaan kun tiedostoa yritetään lukea?
Pystyy.
Siisteintä voisi olla vahtia tiedoston avaamista. Asenna inotify-tools, ja vahdi tiedosta vaikka näin:
while [ ! -z "$(inotifywait -e open piip.wav)" ]; do echo PIIP; done
Jos oikeasti haluaisit tietää jokaisen lukuoperaationkin, niin kyseeseen voisi tulla strace.
strace -f -e open,read opera
Strace tosin voi hidastaa ohjelman ajamista huomattavasti.
> en tiedä onko tuo mitenkään järkevä lähestymistapa
Minusta se ei ainakaan kuulosta kovin järkevältä. Vastasin nyt kuitenkin, koska tiedostojen käsittelyn valvontaan on Linuxissa saatavilla kaikista muista käyttöjärjestelmistä poiketen varsin tehokas ja jopa siisti työkalu, eli inotify. Se voi kiinnostaa monia muitakin palstan lukijoita.
> vai pitäisikö tehdä mieluummin skripti, joka valvoo operan maili-tiedostoja ja niiden muuttuessa piippaa?
Jos haluat piippauksen vain ja ainostaan sähköpostin saapuessa, tämä voi olla vähän parempi juttu. Huomaa, että tässäkin kannattaisi käyttää inotifyä.
Itse joko asentaisin tai todennäköisimmin kirjoittaisin itse jonkin mailboksia tarkkailevan työkalun. Imap tai pop3 -mailboksin tarkkailuohjelma on kuitenkin alle kymmenen riviä Pythonia¹. Se toimii ilman Operaakin ja sen saa tekemään juuri sen, minkä haluaakin.
¹) http://www.devshed.com/c/a/Python/Python-Email-Libraries-part-2-IMAP/1/
http://www.devshed.com/c/a/Python/Python-Email-Libraries-part-1-POP3/1/
ehdinkin jo ratkaisemaan ongelman skriptillä yksinkertaisesti tutkimalla tiedostojen uidl_account1_ver8 ja uidl_account2_ver8 viimeistä muokkausta.
mutta kokeilen ilman muuta tuota inotify-tools:ia kun sitä voi joskus jossain muussa tarkoituksessa tarvita.