关于 PHP 启动的进程怎么退出的问题

13次阅读

共计 350 个字符,预计需要花费 1 分钟才能阅读完成。

经典套娃。

场景这样的使用 symfony process 启动了一个 php 进程。

symfony 启动使用的命令是:

$commandline = '{('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;';
$commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'

启动成功后进程树类似:(假设执行的是 php -r “sleep(10);”)

|—master
|—–|—(PID:100) sh -c php -r “sleep(10);”
|———–|—(PID:101) php -r “sleep(10);”

当在 master 中执行 posix_kill(101, 15) sigterm 后。sh 立刻退出了。剩余一个 php -r “sleep(10);” 还在跑。

通过这种形式启动的进程应该怎么“优雅”的退出呢?

正文完
 0