Page 1 of 1

Deamon steuern

Posted: 18. Dec 2008 12:06
by tuxmöger
Hallo zusammen,

ich habe mir für einen Protokollier-IPC einen Deamon geschrieben, der über eine parallele Schnittstelle Daten einliest und in ein File schreibt. Dieser funktioniert wunderbar.

Jetzt möchte ich den Deamon im Betrieb über eine Website steuern. Beispielsweise soll durch einen Klick im Browser der Deamon die Protokollierung stoppen oder es soll die Schnittstelle gewechselt werden können. Website und CGI sind kein Problem, ich frage mich nur, wie ich dem Deamon diese Daten übergeben kann. Muss ich den Deamon dann jeweils beenden und neu starten damit dieser über ein Config-File, welches via CGI gefüllt wird, die neue Konfiguration übernimmt? Gibt's andere Wege?

Vielen Dank

tuxmöger:-)

Posted: 18. Dec 2008 12:58
by Janka
Du sagst was über IPC (Inter-Process-Communication), weißt aber dann nicht, wie du das anwenden sollst? Oder hat IPC noch eine neue Bedeutung, die ich nicht kenne?

Wenn du tatsächlich nur das Configfile neu einlesen lassen willst, kannst du Signale benutzen. SIGUSR1 und SIGUSR2 sind für sowas gedacht und frei, wenn man keine Threads verwendet. Oder du nimmst SIGHUP, das machen auch andere Daemons so. Einfach einen Signalhandler im Daemon einbauen und dann jeweils das Configfile neu lesen.

Am zweiteinfachsten und gleichzeitig am flexibelsten ist es, den Daemon eine Named Pipe irgendwo im Dateisystem abfragen zu lassen. ob dort neue Daten anliegen. Die Weboberfläche schreibt da dann jeweils das nötige Kommando (Bytefolgen) rein. Für beide Seiten sieht die Named Pipe wie eine gewöhnliche Datei aus, man kann also mit normalen Dateioperationen arbeiten. Wichtig: Named Pipes sind wie normale Pipes nur Einbahnstraßen, es gibt nur einen Kanal pro Pipe, man darf also nur einen Reader haben. Wenn du einen Rückkanal brauchst, musst du dafür eine zweite Pipe aufmachen.

Janka

Posted: 18. Dec 2008 13:35
by tuxmöger
Vielen Dank für Deine hilfreiche Antwort! Ich werde mal Versuche mit einer Pipe machen.

Wenn ich IPC höre, dann denke ich zuerst an an IndustriePC:-) Du scheinbar an Interprozess-Kommunikation. Hängt warscheinlich vom Betätigungsfeld ab.

Gruss


tuxmöger