Linux 进程、进程组、会话与终端关系图解
核心概念
会话 (Session):一个或多个进程组的集合。一个会话可以绑定一个控制终端 (TTY)。
进程组 (Process Group):一个或多个进程的集合。用于作业控制,可前台 (FG) 或后台 (BG) 运行。
控制终端 (TTY):会话的纽带。终端断开时,内核会向会话首进程发送 SIGHUP 信号。
关键机制
信号流:终端事件(如 Ctrl+C)由内核投递至前台进程组;终端断开时,SIGHUP 发送至会话首进程,首进程退出后,该会话下的所有进程都会收到 SIGHUP。
孤儿进程:父进程退出后被 init 收养,但其进程组和会话保持不变,直到主动调用 setsid()。