ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
函数原型: ``` php int swoole_process::__construct(mixed $function, $redirect_stdin_stdout = false, $create_pipe = true); ``` - `$function`,子进程创建成功后要执行的函数,底层会自动将函数保存到对象的callback属性上。 - 如果希望更改执行的函数,可赋值新的函数到对象的callback属性。 - `$redirect_stdin_stdout`,重定向子进程的标准输入和输出。启用此选项后,在进程内echo将不是打印屏幕,而是写入到管道。读取键盘输入将变为从管道中读取数据。默认为阻塞读取。 - `$create_pipe`,是否创建管道,启用`$redirect_stdin_stdout`后,此选项将忽略用户参数,强制为true 如果子进程内没有进程间通信,可以设置为false。 - 1.7.22或更高版本允许设置管道的类型,默认为`SOCK_STREAM`流式 参数`$create_pipe`为2时,管道类型将设置为`SOCK_DGRAM`。 ``` php <?php $process = new swoole_process(function(swoole_process $worker){ while (true){ $cmd = $worker->read(); passthru($cmd); } }, true, 2); $process->start(); $process->write('ls -l');//将参数传入子进程内 echo $data = $process->read();//获取执行结果 ``` 实例:web版本的shell https://github.com/52fhy/swoole_demo/blob/master/swoole_shell_server.php