Is het mogelijk om vanuit userspace een node aan te maken in het devfs of proc filesystem?
Ik wil een programma schrijven dat op ieder moment een staat heeft (in mijn testomgeving is dit een klokje, in werkelijkheid moet dit een soort reverse-logging en monitoring systeem worden). Andere programma's moeten deze staat uit kunnen lezen. Liefst maak ik dit zo makkelijk mogelijk, zodat zelfs eenvoudige scriptingomgevingen gebruik kunnen maken. Mijn idee was om deze scripts een eenvoudig bestand te laten lezen, dat alle info bevat die gevraagd word. Helaas is dat nogal inefficient: Ik moet dan namelijk iedere keer als de staat van mijn progsel wijzigt, het bestandje aanpassen of opnieuw genereren. De staat van mijn huidige klokje wijzigt iedere seconde. Gelukkig is de staat niet zo moeilijk te berekenen, en is ondanks de hoge schijfactiviteit de load niet zeer hoog. Helaas is niet altijd de staat eenvoudig te berekenen, en kan de berekening mogelijk langer duren dan de tijd tussen twee state-changes. (denk hierbij aan remote logging en latancy).
Lieft zou ik een /prog of /dev bestandje maken, dat mijn proces genereert tegen de tijd dat het nodig is, op die manier bepaalt de monitoring intensiteit zwaar de betreffende machine het heeft in termen van load...
Ik weet dat dit in kernel-mode mogelijk is, maar is dit ook mogelijk vanuit userspace? Zijn er eventueel alternatieven (bidi pipes, sockets), en hoe zijn die toe te passen?
Ik wil een programma schrijven dat op ieder moment een staat heeft (in mijn testomgeving is dit een klokje, in werkelijkheid moet dit een soort reverse-logging en monitoring systeem worden). Andere programma's moeten deze staat uit kunnen lezen. Liefst maak ik dit zo makkelijk mogelijk, zodat zelfs eenvoudige scriptingomgevingen gebruik kunnen maken. Mijn idee was om deze scripts een eenvoudig bestand te laten lezen, dat alle info bevat die gevraagd word. Helaas is dat nogal inefficient: Ik moet dan namelijk iedere keer als de staat van mijn progsel wijzigt, het bestandje aanpassen of opnieuw genereren. De staat van mijn huidige klokje wijzigt iedere seconde. Gelukkig is de staat niet zo moeilijk te berekenen, en is ondanks de hoge schijfactiviteit de load niet zeer hoog. Helaas is niet altijd de staat eenvoudig te berekenen, en kan de berekening mogelijk langer duren dan de tijd tussen twee state-changes. (denk hierbij aan remote logging en latancy).
Lieft zou ik een /prog of /dev bestandje maken, dat mijn proces genereert tegen de tijd dat het nodig is, op die manier bepaalt de monitoring intensiteit zwaar de betreffende machine het heeft in termen van load...
Ik weet dat dit in kernel-mode mogelijk is, maar is dit ook mogelijk vanuit userspace? Zijn er eventueel alternatieven (bidi pipes, sockets), en hoe zijn die toe te passen?
Localhost, sweet localhost