基本概念
终端和网络登录过程
进程组
会话
控制终端
Shell 中的命令执行
作业控制
图 5-8 终端上的登录过程
=============================================================================== #include <unistd.h> int setpgid (pid_t pid, pid_t pgid); pid_t getpgid (pid_t pid); int setpgrp (void); pid_t getpgrp (void); ------------------------------------------------------------------------------- * 进程只能将自身和其子进程设置为进程组 id. * 某个子进程调用 exec 函数之后, 就不能再将该子进程的 id 作为进程组 id. ===============================================================================
=============================================================================== #include <unistd.h> pid_t setsid(void); ------------------------------------------------------------------------------- * 如果调用进程不是进程组的领头进程, 该函数才能建立新的会话. * 调用 setsid 之后, 进程成为新会话的领头进程. * 进程成为新进程组的领头进程. * 进程失去控制终端 ===============================================================================
图 5-9 进程关系