Programm mit vorgegebender PID starten

Lord_Icon

Member
Moin,

ich bau mir grad was zusammen, wo u.a. ein Programm gestartet werden soll.
Dieses Programm soll im Hintergrund laufen, so das man weiterarbeiten kann.
Mein Script soll nun sekündlich die PID abfragen, ob diese noch vorhanden ist (sprich: noch läuft).
Ist es beendet, wird eine Message ausgegeben, das der Job beendet ist und die Resultate nun bereit liegen.

Bisher hab ich es sogemacht, das ich den Dateiname suche und schaue, ob der noch vorhanden ist.
Was bis dato auch ganz gut geklappt hat.

Nur leider will ich es jetzt erweitern, so dass es durchaus auch vorkommen kann, das das gleiche Programm mehrmals läuft.
Somit entfällt das Abfragen des Programmnamen.

Hat einer eine Idee ?

Ich würde das Script ja gleich mit einer zufällig generierten ID starten lassen. So erspare ich mir einiges. Aber wie lautet der Befehl hierzu ?


Aso... PHP Script der mittels shell_exec arbeitet
 
Hat einer eine Idee ?
Lockfile anlegen und bei Vorhandensein den Start abbrechen. Das Lockfile muss natürlich aufgeräumt werden, wenn das Skript sich beendet. Das Lockfile könnte auch die PID deines Skripts enthalten, so dass ein Prüfung, ob eine Instanz läuft, einfacher wird.
 
Du kannst die PID nicht vorgeben. Du musst sie auslesen.

Aber warum gerade mit shell_exec? Der startet das Programm und blockiert die IO-Ports. Außer Du verwendest nohup oder Ähnliches. Aber es geht auch leichter.

Entweder schreibt das aufgerufene Programm eine eigene PID in ein bestimmtes Verzeichnis. (Zur Not über ein Shell-Script.)
Oder Du siehst zu, dass das Script direkt die PID zurück liefert:
Code:
$pid = exec("/mein/programm & echo \$!")

huschi.
 
Danke für die anregenden Ideen. Werd ich gleich mal antesten.

Aber warum gerade mit shell_exec?
Na weil es shell-Befehle sind, die ich vom PHP Script an die bash übergebe.
Gemäß meines Wissenstandes, tut das shell_exec.... bin aber gern bereit ein update-anweisung durchzuführen ;)
 
Ließ Dir einfach das PHP-Manual dazu durch. Darunter findest Du noch weitere Anregungen, wie man Programme von PHP ausführen kann. Bis hin zu proc_open, welches eine Prozess-Kommunikation zu lässt.

huschi.
 
Back
Top