Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7115622
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: LINUX

2014-03-18 21:54:48

原文地址:process group与session 作者:fireaxe

session: 
session其实就是对应着一个termial,启动终端后在这个termial中创建的所有进程都属于这个session。

进程组: 
进程组对应着termial中执行的一条命令行,这个命令行创建的进程及其子进程都属于该进程组。如果命令行加上“&”,则属于后台程序组;如果不加“&”则属于前台程序组。由于前台程序组会阻塞termial(即,前台程序结束前,无法向termial输入新命令),所以最多只能有一个前台进程组。

controlling process:
在terminal中输入“ps“,必然会有一个命令为CMD为bash的进程,这个进程就是当前terminal的controlling process,用于处理各种输入。

setpgid:
这个函数的用处好像不大

setsid:
setsid可用于创建daemon进程。一个非进程组leader进程调用setsid后,会生成一个session,而新的session不会绑定terminal,因此也就生成了一个daemon进程。


总结:
进程组对应着一个命令行,因此也就是对应着一个应用程序的入口。因此进程组也就为用户控制某一程序启动的一组进程提供了方便。
terminal应该是对应着一个用户,命令行形式下的linux,每个用户应该只能使用一个terminal,因此可以方便的对一个用户的所有进程进行控制。
当然现在的linux都是支持同一用户登录多个terminal的,同时窗口界面也导致同一用户会同时启动多个terminal,因此terminal 之上还有一层用户管理。使用”ps -u"命令可以查看某个用户建立的所有进程。

思考:
嵌入式的管理模式。
嵌入式通常都会简化设计,通常嵌入式只有一个用户,也只有一个terminal。使用busybox时,ps命令甚至不支持打印sid。另外嵌入式中似乎多进程设计也很少,因此进程组的概念用处也不大。
在嵌入式中,使用多线程编程似乎是更经济实惠的方式。
阅读(523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~