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