fork一個子進(jìn)程,在子進(jìn)程中做while(1)循環(huán),在父進(jìn)程中間隔幾秒之后,posix_kill給子進(jìn)程發(fā)送終止信號,
最后在ps 命令中還可以看到子進(jìn)程的存在,只有父進(jìn)程退出之后,子進(jìn)程才一起消失
liunx 中使用查看命令是:
ps -aux | grep php
ps --ppid pid[父進(jìn)程的進(jìn)程號]
ps axjf | grep php
代碼如下:
<?php
$fun7 = function () {
$pid = pcntl_fork();
switch ($pid) {
case -1:
exit("fork child process failed~\n");
case 0:
$childPid = posix_getpid();
while (true) {
echo "child process get pid = $childPid ~ \n";
sleep(3);
}
break;
default:
sleep(5);
posix_kill($pid, \SIGKILL);
for ($i = 0; $i < 10; $i++) {
$parentPid = posix_getpid();
echo "parent process get pid = $parentPid ~ \n";
sleep(2);
}
break;
}
echo "Done ~\n";
};
$fun7();