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

