日期:2014-05-16  浏览次数:20715 次

进程与会话
1、为什么设置进程组时被设置进程不能是一个会话的leader?
2、为什么setsid时调用进程不能是进程组leader?
3、为什么setsid后要失去控制终端?
4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?

------解决方案--------------------
>1、为什么设置进程组时被设置进程不能是一个会话的leader?
因为一个session有很多process group.

>2、为什么setsid时调用进程不能是进程组leader?
这相当于开启了一个新的session,如果是leader,整个都会在一个挪到新的session当中。

>3、为什么setsid后要失去控制终端?
因为setsid是开启一个新的会话运行程序。一次会话一般是对应一个终端。

>4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?
不属于。可以看下面的输出结果。
Python code
$ ps jx 1
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    0     1     1     1 ?           -1 Ss       0   0:01 /sbin/init