zoco

php-fpm的一些实验

2017-02-07


实验一

  1. 将pm设置成static方式
  2. 将pm.max_children设置为1
  3. 将pm.max_requests设置成500

每次请求,程序末尾包括exit()和不包括exit()的形式,php-fpm的子进程都不会被杀死。

实验二

  1. 将pm设置成static方式
  2. 将pm.max_children设置为1
  3. 将pm.max_requests设置成1

每次请求,程序末尾包括exit()和不包括exit()的形式,php-fpm的子进程都会被杀死。

实验三

<?php
class a {
    public $a;
    public function __construct() {
        $this->a = 1;
        exit();
    }

    public function __destruct() {
        echo $this->a."\n";
        echo '123'."\n";
    }
}

$a = new a();
echo $a->a;

输出

1
123

结论:php中的exit()并不能使这个进程直接结束。尽管调用了exit(),Shutdown函数以及object destructors总是会被执行。