Mailinglisten-Archive |
Huhu, On Wednesday 22 May 2002 02:26, Alexander Saupe wrote: > DAS EIGENTLICHE PROBLEM IST DIESES: > Wenn ich doch erstmal den bloeden mlDonkey über PHP starten könnte.... > das geht nicht, kann ihn nicht starten. Habs damit versucht: > exec ("mldonkey > mldonkey.log &"); Ich habe für diese Problem auch noch keine gute Lösung gefunden. Das einzige, was in ähnlichen zusammenhängen funktioniert hat, ist einen kleinen "daemon" in c zu schreiben, den aufzurufen und ihm als parameter den Aufruf mit zu übergeben. Soweit ich das verstehe, wird alles, was du von php aus startest, beendet, sobald das script beendet wird (...). Machen wirs einfach und sagen, das der daemon sich von der shell lösen kann, indem er stdin(...) schließt und neu öffnet und so fort. Gibt dazu schon einige Beispiele auf den php seiten; find ich jetzt nicht, aber so ähnlich könnte das aussehen: #include <stdio.h> #include <sys/signal.h> int main(int argc, char *argv[]) { char cmd[200]; char debug=0; //true || false. sigset(SIGINT, SIG_IGN); sigset(SIGPOLL, SIG_IGN); sigset(SIGHUP, SIG_IGN); sigset(SIGCLD, SIG_IGN); if(fork())exit(0); setpgrp(); close (fileno(stdin)); close (fileno(stdout)); close (fileno(stderr)); open ("/"); dup2 (0,1); system (argv[1]); } Eine andere Lösung wäre, einen kleinen Daemon in php zu schreiben, den Du im Hintergrund laufen läßt. Dann schreibst du kleine messages irgendwo ins system, die der daemon liest. Der daemon führt die sachen dann im Vordergrund aus...Auf die Weise läuft das webscript einfach weiter. Ist etwas viel source um das hier zu veröffentlichen...und vielleicht weiss ja auch jemand eine leichtere Lösung. Aber wenn's wer braucht, schick ichs gern rum. Gruß, flim
php::bar PHP Wiki - Listenarchive