当前位置: 技术问答>linux和unix
进程与会话
来源: 互联网 发布时间:2017-01-11
本文导语: 1、为什么设置进程组时被设置进程不能是一个会话的leader? 2、为什么setsid时调用进程不能是进程组leader? 3、为什么setsid后要失去控制终端? 4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢? ...
1、为什么设置进程组时被设置进程不能是一个会话的leader?
2、为什么setsid时调用进程不能是进程组leader?
3、为什么setsid后要失去控制终端?
4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?
2、为什么setsid时调用进程不能是进程组leader?
3、为什么setsid后要失去控制终端?
4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?
|
>1、为什么设置进程组时被设置进程不能是一个会话的leader?
因为一个session有很多process group.
>2、为什么setsid时调用进程不能是进程组leader?
这相当于开启了一个新的session,如果是leader,整个都会在一个挪到新的session当中。
>3、为什么setsid后要失去控制终端?
因为setsid是开启一个新的会话运行程序。一次会话一般是对应一个终端。
>4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?
不属于。可以看下面的输出结果。
其实手册上面说得更加清楚。
$ man 3p setsid
因为一个session有很多process group.
>2、为什么setsid时调用进程不能是进程组leader?
这相当于开启了一个新的session,如果是leader,整个都会在一个挪到新的session当中。
>3、为什么setsid后要失去控制终端?
因为setsid是开启一个新的会话运行程序。一次会话一般是对应一个终端。
>4、系统中的每个进程都属于一个会话吗?init属于哪个?内核线程呢?
不属于。可以看下面的输出结果。
$ ps jx 1它的SID是1,不是属于某一个登录会话。
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1 1 1 ? -1 Ss 0 0:01 /sbin/init
其实手册上面说得更加清楚。
$ man 3p setsid