Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61017
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-18 10:40
文章分类

全部博文(26)

文章存档

2013年(26)

我的朋友

分类: LINUX

2013-09-29 15:16:04


#include
pid_t setsid(void)
调用此函数的进程不是一个进程组的组长,则此函数创建一个新会话
1)该进程成为会话首进程,会话首进程是创建该会话的进程,此时为新会话中唯一进程
2)该进程成为一个进程组组长。进程组ID为调用进程ID
3)该进程没有控制终端
#inlclude
pid_t getsid(pid_t pid)//如果pid是0,则返回调用进程的会话首进程组ID。


控制终端
1)一个会话一个控制终端。一般为登录到其上的设备或者伪终端(网络登录)
2)建立与控制短链接的会话首进程为控制进程
3)一个会话中的几个进程可被分成前台进程组,以及一个或几个后台进程组
4)如果一个会话有一个控制端,则它有一个前台,进程组,会话中的其他进程为后台进程组
5)无论何时从终端键入中断键,就会将中断信号发送给前台进程组的所有进程
6)无论何时键入终端的退出键,就会将推出信号发送给前台进程组的所有进程
7)如果终端接口检测到调制解调器已经断开链接,则将挂断信号发送给控制进程会话。


#include
pid_t tcgetpgrp(int filedes)//成功返回前台进程组ID,错误返回-1
int tcsetpgrp(int filedes,pid_t pgrpid)//成功返回0,失败-1
作业控制
作业控制也允许在一个终端上启动多个作业,控制哪个作业可以访问终端,以及哪些作业在后台运行
1)支持作业控制的shell
2)内核中的终端驱动程序必须支持作业控制
3)内核必须提供对某些作业控制信号的支持。
阅读(689) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~