进程组

bash进程拥有一个终端,这种终端叫做控制终端

进程组: 一个或多个进程的集合,一个进程都有一个进程组id,表示该进程属于那个进程组

bash进程启动后,会使用setsid把自己设置为会话首进程,也会设置自己为组长进程,同样的在bash中执行php脚本,运行时也会把php进程设置为组长进程

1
2
3
<?php
fprintf(STDOUT, "pid =%d,ppid=%d,pgid=%d,sid=%d",posix_getpid(),posix_getppid(),posix_getpgid(posix_getpid()),posix_getsid(posix_getpid()));

孤儿进程

父进程先结束,子进程会被1号进程接管

php设置自己为组长进程

使用 posix_setpgid(pid,pid,pid,pid); fork出来的子进程会继承父进程的组长进程