Kalle_B: Programm-Update - aber wie?

Hallo,

wie kann ich erreichen, dass ein PHP-Script überschrieben wird?

Das PHP- Programm A fragt bei einem anderen Server an, ob er eine neuere Version von A hat. Wenn ja, soll A ersetzt werden. Das geht aber nicht, weil es wohl während der Ausführung geschützt ist.

Aus der Beschreibung des exec() bin ich nicht schlau geworden.

Kann Programm A mit exec Programm B rufen, das dann A überschreibt? Offenbar wartet A nicht, dass B fertig meldet. Richtig?

Aber wenn A noch dabei ist, zu enden und B schon schreiben will? Keine Ahnung, wie schnell sich Programme zeitlich überlappen.

Wer hat einen Tipp?

LG Kalle

  1. Hello,

    Kann Programm A mit exec Programm B rufen, das dann A überschreibt? Offenbar wartet A nicht, dass B fertig meldet. Richtig?

    A kann B (auf Linux) auf zweierlei Arten mit exec() aufrufen:

    als Teilprozess von A
          A kann nicht enden, solange B noch läuft.

    als abgespaltener, eigenständiger Prozess, mit '&' in den Hintergrund stellen.
          B wird von A getrennt und wenn A endet, kann B weiterleben.

    Funktionierende Beispiele dafür findest Du in den UCN auf der php.net Seite.

    Üblicherweise wird ein Script vollständige in den Haupspeicher geladen und die Scriptdatei ist danach wieder freigegeben, auch wenn das Script im Speicher noch arbeitet. Aber vielleicht ist der Webserver nicht berechtigt, die Scriptdatei zu löschen, da er keine Schreibrechte im Verzeich Verzeichnis hat, in dem das Script lirgt. Die Rechrte auf das Script selbst sind zum Löschen unerheblich, zumindest auf Linux - auf Windows bin ich mir nicht sicher.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de