Use of callback on a stream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I am trying to make a daemon that launches shell commands via proc_open and gets the stdout of the command via a pipe. The thing is that I would like to get this stdout via a callback, instead of monitoring the pipe regularly. I tried the following code (this is a simplified version of it, but the callback never gets called,

does anyone know what I forgot ?
Thanks,
Olivier


<?php

// First we proc_open a ls
//    1 - we build the descriptor array
$descriptorspec = array(
              0 => array("pipe", "r"),  // // stdin
              1 => array("pipe", "w"),  // stdout
              2 => array("pipe", "w") // stderr
              );
$pipes=array();
// We make a simple callback function
function stream_callback(){
  global $pipes;

  $stdout_child=stream_get_contents($pipes[1]);
  print("Callback received:\n");
  print($stdout_child."\n");
}
$context=stream_context_create(array());
stream_context_set_params($context,array('notification' => 'stream_callback')); $handle=proc_open("/bin/ls /tmp",$descriptorspec,$pipes,null,null,array('context' => $context)); stream_context_set_params($pipes[1],array('notification' => 'stream_callback'));

while (true){
  print("Waiting...\n");
  sleep(5);
}



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux