Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

prozess starten UND erhalten der PID





Frage

also ... gesucht hab ich - nix gefunden xD also ich will Prozesse starten und desen PID (prozess id) in einer DB hinterlegen um so per web prozesse neustarten,beenden und und zu können. wenn ich per exec shell_exec etc prozesse starte bleibt das phpscript bis zur beendignung stehen ist aber unnützt, da ich ja diese Prozesse weiterhin benötige! so die PID erhalte ich jetzt dank eines selbst geschrieben tools, aber hier auch der selbe effekt, obwohl mein programm beendet wird. Wenn ich anschliessend das Program beende(im taskmanager/prozesse) wird die php weiter fortgesetzt. gibt es eine andere möglichkeit (anderes Plugin zB) wo man PID erhält ohne das das Program schliesst? oder kann ich das mit nem popup oder frameset umgehen? Danke im voraus MfG LinkeT

Antwort 1 von Supermax

Wenn du bei shell_exec() an das Kommando
>/dev/null 2>&1 &
anhängst, wird das Programm (Script) im Hintergrund gestartet und die Standard-Ein/Ausgabe werden nach /dev/null umgeleitet. Dein PHP-Script sollte damit sofort nach dem shell_exec() mit der Ausführung fortfahren.

Wenn du das Hintergrundprogramm selbst geschrieben hast, kannst du ja ein Stück Code einbauen, das die PID in eine Datei schreibt, deren Dateinamen du z.B. als Parameter
-p <pidfile>
beim Start mit übergeben kannst. Viele Standardprozesse unter Linux verwenden diese Methode, die PID-Dateien befinden sich dann meistens unter
/var/run
.

Auf diese Weise läßt sich auch ein simples Locking realisieren, um zu verhindern, daß dasselbe Programm mehrmals gestartet wird (einfach auf Vorhandensein der PID-Datei überprüfen). Das setzt natürlich voraus, daß das Hintergrundprogramm die PID-Datei nach Beendigung selbsttätig löscht, auch im Fall eines Programmabbruchs z.B. mittels
kill


Antwort 2 von LinkeT

ups sry vergessen

win32, xD

aber danke für die schnelle antwort

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: