智一面

$pid = posix_getpid();

$ppid = posix_getppid();

var_dump($pid);

cli_set_process_title("myparent");

for($i = 1;$i<10;$i++){

$child = new Swoole\Process(function(){

cli_set_process_title("mychild");

echo "child ".getmypid().PHP_EOL;

sleep(10);

});

$child->start();

}

while(true){

sleep(1);

}

如果不进行回收,会产生僵尸进程

[root@localhost swoole]# php test.php

int(31030)

child 31031

child 31033

child 31034

child 31035

child 31032

child 31036

child 31037

child 31038

child 31039

f65304b9edcb0fbc84c1f53a4dc6eb9c.png

子进程输入到父进程

$pid = posix_getpid();

$ppid = posix_getppid();

var_dump($pid);

cli_set_process_title("myparent");

$child = new Swoole\Process(function(){

cli_set_process_title("mychild");

while(true){

echo "child ".getmypid();

sleep(1);

}

},true);

$child->start();

Swoole\Process::wait(false); // true是堵塞式的,读取子进程内容必须放在他前面,才能在被销毁之前拿到数据

//$child1 = new Swoole\Process(function(){

// cli_set_process_title("mychild1");

// echo "child1 ".getmypid().PHP_EOL;

// while(true){

// sleep(1);

// }

//

//});

//$child1->start();

while(true){

echo $child->read()." brady".PHP_EOL;

sleep(1);

}

标签:child1,swoole,start,sleep,child,进程,php,true

来源: https://www.cnblogs.com/php-linux/p/12765417.html