zoukankan      html  css  js  c++  java
  • linux 进程 进程组 作业 会话 控制终端

    linux 进程 进程组  会话 控制终端 这几个很容易搞昏,记录一下,防止忘记

    1 进程 

     个人理解 进程就是一段内存中运行的程序 pid 是进程ID

    2 进程组 

     顾名思义,就是一组进程,他们之间不是孤立的,肯那个存在父子 或进程关系,注意linux 下进程是树状组织,

     每个进程一定属于一个进程组,也只能属于一个进程组,进程组里面有多个进程

     每个进程组都有一个leader,领导进程的PID 就是集成组ID 即 PGID

     eg: ps -o pid,pgid,ppid,sid,comm  | more

     上图中可以看出:

              ps

    bash -》fork -》 

                 cat 

    ps  和 cat 构成了集成组,ps 是leader , leader 可以先结束,进程租的其他进程任然持有刚才的 PGID, 直到集成组所有进程都退出

    可以通过 kill -SIGTEAM  给进程组发送信号

     可用 pstree 查看进程关系,如图

    3 作业

    Shell分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group)。一个前台作业可以由多个进程组成,一个后台也可以由多个进程组成

    Shell可以运行一个前台作业和任意多个后台作业,这称为作业控制 bash 支持作业控制,sh 不支持

    作业与进程组的区别:如果作业中的某个进程又创建了子进程,则子进程不属于作业。一旦作业运行结束,Shell就把自己提到前台,如果原来的前台进程还存在(如果这个子进程还没终止),它自动变为后台进程组。

     可以通过在末尾加& 把进程放到后台

    通过 job 放在前台,具体使用请谷歌

    4 会话

     多个进程组组可以构成会话 ,会话是有其中的进程创建的,该进程叫做会话的 session leader,session leader 的pid 成为会话的sid 

      会话可以有多个进程组,但是只能有一个前台进程组,其他的都是后台进程组, 每个会话都可以连接一个控制终端,且只能连接一个终端,终端有输入输出,都传到进程会话组

  • 相关阅读:
    HTML表格和列表笔记&练习<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>关于表格的一些练习</title> </head> <body> <p>一个普通基本的表格</p> <table border="5&
    HTML中的CSS类型
    html关于图片和链接的笔记
    实现窗体背景透明
    HTML控件篇 -- input
    AngularJs的$http使用随笔
    Win7启动修复(Ubuntu删除后进入grub rescue的情况)
    2013年9月30日我的博客园开通啦
    将excel表格导入到DataGridView
    c#中,点击一个菜单项后调用exe文件
  • 原文地址:https://www.cnblogs.com/songbingyu/p/4089111.html
Copyright © 2011-2022 走看看