| Autor | Zpráva | ||
|---|---|---|---|
| hunter_dave Profil |
#1 · Zasláno: 27. 8. 2012, 16:10:22
Zdravím,
už přes půl dne se to snažím nějak vyřešit a nevím si rady. Potřebuju nějak přesměrovat výstup při použití funkce exec() .. $exec = 'start '.$player_url.' "'.$file.'"';
file_put_contents("files/playmusic.bat", $exec);
exec(dirname(__FILE__)."/files/playmusic.bat > NULL ");Potřeboval bych, aby php prostě odeslalo signal ke spuštění souboru a dál se o to už nezajímalo. Už sem vážně zoufalý, uvítám každou radu. |
||
| hunter_dave Profil |
tak nakonec teda vyreseno .. dost neelegantnim zpusobem .. php spusti VBScript, ktery spusti batch soubor a ten spusti prehravac s hudbou .. ale samozrejme pokud prijdete na lepsi reseni .. rad uvitam :)
|
||
| Keeehi Profil |
#3 · Zasláno: 27. 8. 2012, 21:34:12
hunter_dave
Řešením je využít paralelního programování - vytvořit více vláken běžící aplikace. $pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid === 0) {
// we are the child
exec("start $player_url \"$file\"");
exit;
}
// we are the parent
pcntl_wait($status); //Protect against Zombie children |
||
| hunter_dave Profil |
#4 · Zasláno: 28. 8. 2012, 13:33:31
Mám php5 a funkce pcntl_* hlasi neznama funkce .. je potreba je do php doinstalovat nebo nejak povolit?
|
||
| Majkl578 Profil |
PCNTL není dostupné pro platformu Windows. Na Unix platformě vyžaduje kompilaci s přepínačem
--enable-pcntl.
|
||
| hunter_dave Profil |
#6 · Zasláno: 28. 8. 2012, 13:58:31
Tak to bude ten problem :D mám windows ..
|
||
| Keeehi Profil |
#7 · Zasláno: 28. 8. 2012, 13:59:05
Na linuxu by to mělo jít spustit bez forkování jako proces na pozadí prostým přidáním " &" na konec. Na windows snad
start /B program, ale to nemám ozkoušené.
|
||
| hunter_dave Profil |
#8 · Zasláno: 28. 8. 2012, 14:12:40
To sem zkousel .. nefungovalo .. a taky mám problém právě s tím, že se program spouští na pozadí, nejde s ním pracovat v normálním uživatelském rozhraní .. jde s ním pracovat pouze jako s procesem .. zkousel jsem nastavit službu apache aby se přihlašovala jako právě přihlášený uživatel ale výsledek byl stejný.
|
||
| Majkl578 Profil |
[#7] Keeehi:
Procesy spouštěné pomocí & umírají ve chvíli, kdy zemře proces, který je spustil. Vhodnější by bylo spuštění přes nohup.
|
||
| hunter_dave Profil |
A není tu někdo kdo by měl řešení pro windows?
|
||
|
Časová prodleva: 14 let
|
|||
0