Am Samstag, 25. Januar 2003 11:48 schrieb Martin Schmitt:
> * Michael Kastner wrote/schrieb:
> > vielen Dank f�r die (sehr schnelle!) Antwort. Es gibt auf der
> > jakarta.apache.org einen Java-Mailserver (James), den ich gerne laufen
> > lassen w�rde.
> >
> > W�hrend es f�r z.B. f�r Tomcat eine rpm gibt, das das diesen gleich als
> > Server installiert, gibt es das f�r James nicht. In den FAQs steht auch
> > nichts dr�ber und beim Googeln habe ich auch nichts gefunden.
> >
> > Aber was soll ein Mail-Server, der nicht als Daemon l�uft!?
>
> Vor allem was soll ein Mailserver, der in Java programmiert ist? Sowas
> w�rde ich nicht mal mit der Kneifzange anfassen.

Das klingt ziemlich alpha ;-((

> > Na ja und nat�rlich interessiert es mich prinzipiell, wie ein Daemon
> > unter Linux programmiert wird, aber das w�rde hier zu weit f�hren.
>
> N�. Das f�hrt nicht zu weit, und ist schnell erkl�rt. Ich kann aber kein C
> und wei� nur die Methode unter Perl, die sich nicht zu sehr von anderen
> Sprachen unterscheiden sollte.

Das sind Aufrufe an die C-Library. Die Funktionieren unter jeder Sprache, die 
mit der libc was anfangen kann.

> Unter Perl macht man einen Proze� mit folgenden Aufrufen zum Daemon:
>
> use POSIX qw(fork setsid);
> fork() && exit(0);
> setsid();
>
> Fork() erstellt eine exakte Kopie des laufenden Prozesses, inclusive der
> Umgebung und aller internen Variablen. Der R�ckgabewert von fork() in der
> Kopie ist 0, der R�ckgabewert im Parent ist die Kind-PID. Den Parent
> beendet man dann (&& exit(), weil der R�ckgabewert im Parent ungleich 0
> ist), und das Kind macht eine eigene Proze�gruppe auf.

Ich w�rde fork() nicht �ber das POSIX-Modul einbinden. Die Implementierung von 
Perl ist zwar langsamer (das st�rt hier nicht), aber auf jedem System 
verf�gbar.

> Man mu� im Kind noch ein bi�chen hinter sich aufr�umen, Filehandles nach
> /dev/null und chdir nach "/", aber das findet sich schon. ;-)

Besonders das mit den Filehandles ist ratsam, man bekommt sonst jede Ausgabe 
des Programmes auf die gestartete Konsole.

-- 
+    Max Trense
+    [EMAIL PROTECTED]
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an