PHP多进程开发[快问快答系列]

PHP多进程开发[快问快答系列]

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

本文介绍了 Linux 系统中的 ELF 文件格式和进程状态,终端类型和进程间通信的信号机制,以及使用 pcntl_fork() 函数时需要注意的问题。

🎯

关键要点

  • ELF 文件格式是 Linux 系统中可执行文件的存储格式,分为四种类型:可执行文件、可重定位文件、共享目标文件和核心转储。
  • tty 代表物理终端,/dev/ttyX 表示本地终端,/dev/console 是当前焦点终端,/dev/pts/X 是伪终端。
  • 进程结束时可能会产生僵尸进程,需使用 pcntl_wait() 函数回收进程资源。
  • 父进程和子进程的关系,子进程在父进程结束后会被 init 进程接管,形成孤儿进程。
  • 进程组和会话的概念,进程组有一个组长,多个进程组组成一个会话,使用 setsid() 函数可以创建新的会话。
  • 信号是进程间通信的一种方式,kill 命令用于发送信号,常用信号包括 SIGKILL 和 SIGINT。
  • 信号处理可以选择默认操作、忽略信号或自定义处理,信号处理器会被子进程继承。
  • 在使用 pcntl_fork() 之前,需先处理信号处理器,并与 Redis 建立连接。
➡️

继续阅读