Hi,
ich habe @work nun CUPS und als einzige Lösung für die Aufgabe, einen Dateidrucker einzurichten, ein kleines Perl-Programm gefunden, welches einen Socket aufmacht und darauf eingehende Daten in die Datei schreibt. CUPS sieht das als Socket-Drucker, funktioniert.
Problem:
Das Teil muß immer laufen und bereit sein. Kommen über einen gewissen Zeitraum keine Daten, beendet sich der Prozeß. Ich vermute, normaler Timeout und normale Reaktion. Also: bei Ende muß der Prozeß neu starten.
Mein Plan:
2:23:respawn:/pfad/zu/dem/Perlscript
(ich bin mir nicht sicher, was ich als erstes Feld, also ID, nehmen sollte.)
in der /etc/inittab verankern. Ist das mit irgendwelchen Nebenwirkungen verbunden, schieße ich mir damit irgendwie ins Knie, gibt es bessere Lösungen? Ja, im CUPS mit file://pfad/zu/printfile habe ich schon erfolglos experimentiert, muß es wohl in früheren Versionen aber mal gegeben haben.
Sicherlich könnte ich im Perl-Script auch eine Endlos-Schleife machen, aber IMHO ist ja inittab für sowas wohl gedacht, oder?
Andreas
Hallo,
On Sat, 28 Aug 2004 18:09:52 +0200 Andreas Kretschmer kretschmer@kaufbach.delug.de wrote:
[perl Skript über inittab immer am Laufen halten]
Sollte gehen. Probleme könntest du aber bekommen, wenn du genau in das Zeitfenster kommst, wo das Skript gerade neu gestartet wird.
Ja, im CUPS mit file://pfad/zu/printfile habe ich schon erfolglos experimentiert, muß es wohl in früheren Versionen aber mal gegeben haben.
Welche Version benutzt du? Ich habe Version 1.1.20 installiert, da gehts, aber ich musste erst in der cups.conf "FileDevice" auf "Yes" setzen (stand im ErrorLog, dass man das machen soll).
Sicherlich könnte ich im Perl-Script auch eine Endlos-Schleife machen, aber IMHO ist ja inittab für sowas wohl gedacht, oder?
Naja. :-)
Grüße Frank Benkstein.
On Saturday 28 August 2004 18:09, Andreas Kretschmer wrote:
Problem:
Das Teil muß immer laufen und bereit sein. Kommen über einen gewissen Zeitraum keine Daten, beendet sich der Prozeß. Ich vermute, normaler Timeout und normale Reaktion. Also: bei Ende muß der Prozeß neu starten.
Mein Plan:
[inittab]
warum nicht einen viel simpleren Bash-Wrapper um das Proggie drumherum?
while true ; do perl meinscript.pl ; done
Inittab ist eigentlich nur für Terminals da, nicht für Sockets.
Konrad
Am Sa, 28. Aug 2004 06:09:52 +0200, schrieb Andreas Kretschmer:
ich habe @work nun CUPS und als einzige Lösung für die Aufgabe, einen Dateidrucker einzurichten, ein kleines Perl-Programm gefunden, welches einen Socket aufmacht und darauf eingehende Daten in die Datei schreibt. CUPS sieht das als Socket-Drucker, funktioniert.
Problem:
Das Teil muß immer laufen und bereit sein. Kommen über einen gewissen Zeitraum keine Daten, beendet sich der Prozeß. Ich vermute, normaler Timeout und normale Reaktion. Also: bei Ende muß der Prozeß neu starten.
Ist das ein Unix-Domain-Socket oder ein IP-Socket? Letzteren würde ich dann über x?inetd laufen lassen, wenn sich das mit dem Skript bewerkstelligen ließe.
Ansonsten ließe sich die Shell-Lösung sicherlich auch in das Programm selbst integrieren.
Tobias,
in der Hoffnung auf ein richtiges Mail-Follow-Up
P.S.:
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)
Wenn Du mal über Gompitz zum Treffen fahren solltest, kannst Du Dich da mal vorher bei mir melden?
lug-dd@mailman.schlittermann.de