lore_barto
29-07-2010, 15:51
Salve a tutti,
ho un problema legato alla funzione exec.
Devo eseguire un comando sulla shell, prenderne l'output ed inserirlo in un file.
Avevo risolto facendo:
- eseguo il programma con exec(comando,output,risultato) dove output è un array
- apro il file con fopen
- uso foreach per scrivere tutti gli elementi di output sul file
- chiudo il file
Il problema è che il programma avviato con exec è infinito e per farlo terminare da shell devo usare ctrl+c.
Quando eseguo dal browser la pagina php rimane sempre a caricare e devo interromperla. Interrompendola non mi salva nemmeno l'output nel file, dato che è un'istruzione successiva ad exec ed io la interrompo prima.
Come posso fare a leggere almeno quello che è stato inviato in output quando era in esecuzione (finchè non lo interrompo per intenderci)?
Nel manuale http://php.net/manual/en/function.exec.php c'è scritto, nella prima nota, che se il programma deve continuare a girare in background reindirizzare l'output su un file (se ho capito bene è proprio quello che voglio io).
Come faccio a reindirizzare l'output in un file invece che in un vettore?
ho un problema legato alla funzione exec.
Devo eseguire un comando sulla shell, prenderne l'output ed inserirlo in un file.
Avevo risolto facendo:
- eseguo il programma con exec(comando,output,risultato) dove output è un array
- apro il file con fopen
- uso foreach per scrivere tutti gli elementi di output sul file
- chiudo il file
Il problema è che il programma avviato con exec è infinito e per farlo terminare da shell devo usare ctrl+c.
Quando eseguo dal browser la pagina php rimane sempre a caricare e devo interromperla. Interrompendola non mi salva nemmeno l'output nel file, dato che è un'istruzione successiva ad exec ed io la interrompo prima.
Come posso fare a leggere almeno quello che è stato inviato in output quando era in esecuzione (finchè non lo interrompo per intenderci)?
Nel manuale http://php.net/manual/en/function.exec.php c'è scritto, nella prima nota, che se il programma deve continuare a girare in background reindirizzare l'output su un file (se ho capito bene è proprio quello che voglio io).
Come faccio a reindirizzare l'output in un file invece che in un vettore?