na SSH'o atveju subeldus komanda ir spustelejus enter ("\n"), grazinamas
output'as, kuri as esu linkes pamatyti. As taip pat esu linkes testi
konmandu ivedima.
Gi - pavyzdyje matyti, kad ta outputa as galiu gauti tik vienu budu -
uzdares pipe'a i kuri tas outputas paseriamas - t.y. nupjoves saka ant
kurios sedziu.
Dar vienas klausimas prie to pacio - faktas kad procesas vis dar sukasi
(proc_open yra elementarus fork'as) - gal kokiu nors subtiliu budu galima
vel prisipe'inti prie jo? Tik va, $pipes[0] po uzdarymo yra NULL :\
"Justas Butkus" <butkus.justas@gmail.com> wrote in message
news:hm1ivf$afo$1@trimpas.omnitel.net...
> Kol 0 (ar, pvz. SSH atveju tai gal būtų 3) kanalas neuždarytas - programa
> laukia ir nieko nevykdo.
> Tai ko galima, tokiu atveju, tikėtis iš jos grįžtant?
>
> > rašome
> - uždarome STDIN
> < skaitome iš STDOUT / STDERR ...
> - įvertiname duomenis
> - jei reikia - vėl atidarome STDIN
> > rašome dar ką nors
>
>
> --
> JB
>
> 2010.02.23 22:48, flegmatoid rašė:
>> sveiki - reikia bi-directional rysio tarp konkretaus proceso (pvz ssh,
>> ftp, mysql) ir php dalies, tam, kad suserti eile komandu, po kiekvienos
>> nuskaitant konsoles output'a.
>>
>> Kas idomiausia - viskas kaip ir veikia, taciau stdout'a gaunu tik uzdares
>> stdin'a (pipe[0]) :\ - gugleje rodo keleta panasiu klausimu - tik, deja,
>> be atsakymu.
>>
>> bandau suvokti - kokia tuomet proc_open funkcijos prasme?
>>
>> <?php
>> $descriptorspec = array(
>> 0 => array("pipe", "r"),
>> 1 => array("pipe", "w"),
>> 2 => array("pipe", "r")
>> );
>>
>> $process = proc_open('mysql -u root', $descriptorspec, $pipes);
>>
>> if (is_resource($process)) {
>> //stream_set_blocking($pipes[0],0);
>> //stream_set_blocking($pipes[1],0);
>>
>> fwrite($pipes[0], "show databases;\n");
>> sleep(1);
>> //fclose($pipes[0]); - veikia tik atkomentavus sia eilute.
>> $rez=stream_get_contents($pipes[1]);
>> echo "[$rez]";
>> //fclose($pipes[1]);
>> proc_close($process);
>> }
>> ?>
>>
>> isbandyta ir po fbsd ir po windoze.
>> php 5.2.12 ir 5.3.0
>>
>> dekui uz mintis