Hallo Leute,
mein neuestes Spielzeug ist ein LCD mit einer Auflösung von 20x4 Zeichen. An den Parallelport angeschlossen ergibt das eine tolle Statusanzeige für z.B. einen Server. Auf dem Server laufen für gewöhnlich viele verschiedene Prozesse bzw. Scripte, die evtl. alle mal was auf das Display schreiben wollen. Da sich das Display nur "in einem Rutsch" beschreiben lässt, muss sich irgendein zentrales Programm darum kümmern, das die "Schreib-Forderungen" von anderen Prozessen an sinnvoller Stelle durchführt. Dafür habe ich folgende Programme geschrieben: Serverprogramm (lcdserv) liest jede Sekunde die Datei /tmp/lcd.stat und stellt den Inhalt (genau 80 Zeichen) auf dem LCD dar. Beschreiben des LCD ist mit dem Client (lcdclient) durch Angabe der Startposition (0-79) und eines Ascii-Strings möglich. lcdclient ist suid und darf als einziger auf /tmp/lcd.stat schreiben. Verschiedene Scripte auf dem Server rufen nun mehr oder weniger häufig den lcdclient auf, weil sie ihren aktuellen Status auf dem Display zeigen wollen. Beispiel: jede Sekunde wird die Anzeige des freien Speichers auf den zwei /home-Partitions an- gezeigt. Diese Scripts verschlingen im Vergleich zum lcdserver (der ja auch jede Sekunde etwas tut) riesig viel Rechenzeit. Deshalb will ich über mehrere kleine C-Programme /proc oder den Status der Modemleitung abfragen. Diese Programme müssten dann aber irgendwie Kontakt zum lcdserver aufnehmen können, der ideal- erweise seine Image-Datei /tmp/lcd.stat nicht mehr benötigt.
Deshalb: Wie kann ich Prozesse unter Linux am einfachsten mit- einander kommunizieren lassen, wenn es einen Server-Prozess und eine beliebig wechselnde Menge an Client-Prozessen geben soll? Für ein hilfreiches Stichwort wäre ich sehr dankbar, gehört habe ich schon einmal Begriffe wie IPC, Sockets etc..., weiß aber nicht, was jetzt wo einzuordnen ist.
Viele Grüße,
Matthias