batchjob starten via php

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een bash script dat een batchjob (perl) start en direkt weer terug komt op de prompt.

Dit script wil ik starten via een php script met exec("startjob.sh").

Er is echter 1 probleem dat ik niet snap. Als ik de bachjob vanaf de commandline start, dan krijg ik gelijk de prompt terug en loopt het perlscript netjes in de achtergrond (kan wel 2 uur duren)

Start ik het script via een php commando vanaf de website, dan keert het exec commando niet terug naar het php script, maar blijft wachten totdat de batchjob klaar is.
Ook alternatieven zoals exec("sh startjob.sh &") werken niet. Alle andere php methodes om een extern script te starten doen het ook niet.

Weet iemand een manier omvanuit een PHP script een andere job op de achtergrond te starten en dan gelijk weer door te gaan met de rest van het PHP script, zonder op de afloop van de job af te wachten?

Acties:
  • 0 Henk 'm!

Verwijderd

Heb je ook geprobeerd het script te starten via een ander scriptje?
Dus bijv exec("startstartjob.sh")

waarbij startstartjob.sh bestaat uit
./startjob.sh &

Misschien dat het 1e shellscript wel gewoon terugkomt

[ Voor 6% gewijzigd door Verwijderd op 05-03-2004 17:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja dat heb ik inderdaad geprobeerd. Op de commandline komt zo'n wrapper script gewoon terug, maar onder php dus niet.
inmiddels heb ik de oplossing echter wel gevonden:

$run="nohup scriptdatgestartmoetworden.sh > /dev/null";

system($run);


Dan doet ie het wel en komt php ook gelijk terug

In het perlscript staat code om een logfile naar de Mysql DB te schrijven en php kan daar weer de status uit lezen.

[ Voor 4% gewijzigd door Verwijderd op 11-03-2004 16:21 ]