zoukankan      html  css  js  c++  java
  • (进程关系)进程组、会话

    控制终端:
        当用户自举时,会创建init进程,进程号为1. init的创建使系统进入多用户状态。对于每个允许登录的设备,intit进程用一次fork,它所生成
    的子进程则执行exec(getty)程序。

    然后login程序将执行以下操作 :
        1、将当前的工作目录设为用户的起始目录(chdir)
        2、调用chown改变终端的用户所有权,使登录用户成为它的所有者。
        3、将该终端设备的访问权限设为读和写。
        4、调用setgid和initgroups设置进程的组ID
        5、用login所得到的所有信息初使化环境:起始目录(HOME)、shell(SHELL)、用户名(USER和LOGNAME),以及一个系统默认路径(PATH)。
        6、login进程改变为登录用户的用户ID(setuid)并调用该用户的登录shell。如下
             execl("/bin/sh","-sh",(char*)0)。


    进程组:
        进程组是多个进程的集合。
        每个进程组有一个组长进程,组长进程的ID和该进程组的ID相同。
         setgpid(pid_t pid,pit_t pgid)函数pid进程的进程组ID设置为pgid。如果这两个数相等,则由pid指定的进程变成组长进程,当然进程只有给自己或者其子进程指定组长进程。如果pid=0,则使用调用者的ID。如果pgid==0,则将pid指定的进程ID作为组长ID。
        在大多数的作业控制shell中,在fork

    会话:
        会话是多个进程或者进程组的集合。
        
      




























  • 相关阅读:
    Resource和Autowired区别
    mybatisplus 分页查询+ dao层抽象
    Error attempting to get column from result set
    第一模块经济学核心原理,第一模块经济学核心原理
    springboot 优雅的启动类
    maven把依赖打进jar包
    第一章:第1课 经济学世界观(上)
    AutomicBoolean
    java异步转同步
    接口作为方法的返回值
  • 原文地址:https://www.cnblogs.com/yml435/p/4655466.html
Copyright © 2011-2022 走看看