栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux学习----进程组

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux学习----进程组

ProcessGroup

​ Linux系统一般都是作为服务器而存在,对于Linux系统而言,图形化界面不过是一个内核之外给“普通用户”增加使用体验感的一个道“道具”而已,这个“道具”和Windows系统一样,对于一个小白而言上手即可使用,只不过Windows的图形界面是内核之内的,而Linux系统的图新界面是内核之外的。由于设计的初衷不同,作为服务器的Linux系统,使用图形化界面是没有任何对服务器性能提升的作用的,所以摒弃图形化界面一个Linux使用者所要秉持的原则
所以很多时候对Linux系统的使用常常是通过一个shell终端进行的,再说的直接一点,一个用户通过一个终端或者Telnet,login一个Linux系统往往是通过一个会话session进行的!当用户登入时,这个会话就开始了。这个时候shell所承担的作用就是,用户在pc端键盘输入指令给终端,终端把这个命令交给shell,shell会执行这个命令,执行完之后会把这个结果显示出来。这个过程周而复始,直到用户logout,这个会话就结束了。(可以想象shell就是一个进程)
然而用户在登入一个Linux系统后的目的却不是仅仅执行几行指令这么简单,用户的目的往往会在终端运行一个可执行的大程序,那么这个时候shell进程就会暂时把终端的使用权交个这个可执行程序,这个可执行程序会被一个由shell进程fork的子进程接管(其中就包含fork与exec函数族),这个子进程此时就获得了终端的使用权,从而进行输入输出的显示操作,当子进程结束后,会把使用权返回给shell进程。(注:这个时候,最开始的进程shell会变为后台进程,子进程变为前台进程。当然如果子进程是一个执行时间很长的程序的话,也可以将此进程作为一个后台挂起的进程,然后重新回到shell上来进行别的指令操作)此时这个子进程和shell进程之前其实是一个进程组,二者共同切换的使用这个终端为用户显示输入输出。这时我们可以将这个子进程分离出来,(使用setcid函数)成为一个新的会话session,但是分离出来的子进程没有终端了!就丧失了对终端的输入输出了!
​ 注意这里面的关系!!!

#include 
int setpgid(pid_t pid, pid_t pgid);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号