Daemon + PHP

Peter_Pan123

Grünschnabel
Hallo liebe User,

ich gebe es zu ich stelle mich zu dämlich an unter google oder Foren das zu finden was ich suche. Ich würde mich gerne ein wenig weiterentwickeln und wollte mich mal an einem Daemon ranwagen. Wie genau stelle ich das an ? Ich würde den Daemon gerne über PHP steuern. Hat jemand für mich darin noch NEUling einige Seiten zur Hand ? Oder auch Ratschläge ?

Gruß Peter
 
Soo eine der hauptvorraussetungen für einen Deamon ist die Prozesskontrolle..
http://de.php.net/manual/de/ref.pcntl.php

Man erstellt per fork() erst mal einen 2. Prozess den man dann mit setsid() zu einem anführer einer Prozessgruppe. Dies ist nötig das der Deamon der einmal gestartet wird, durch kaum etwas nochmal gestoppt werden kann. Also es muss keine 2. Anwendung dauerhaft laufen welche das Script ursprünglich aufrief.

Die Abtrennung vom Parent sieht dann folgerndermaßen aus:

PHP:
if(pcntl_fork()){
exit;
}
pcntl_setsid();
if(pcntl_fork()){
exit;
}

Genau wie du die exklusivität des Prozesses sicherstellen solltest. Am einfachsten erreichst du das ganze mit dem file system, indem du ein fopen('lock','a') ausführst und direkt dannach per flock($fp, LOCK_EX | LOCK_NB) überprüfst ob die anwendung schon mal offen ist. Falls ja per exit; raus.

Die 3. Sache die dein Deamon tun sollte ist sich auf bestimmte privilegien festsetzen.
posix_setuid() und posix_setguid(). Um sicherzustellen das das ganze nicht am ende als root läuft.
 
Zurück