zoukankan      html  css  js  c++  java
  • 进程组&Session

    [进程组]

     1. getpgrp(), getpgid(0) 可获取进程组id, 进程组长的pid等于pgid. 如果进程组长exit, 则进程组依旧存在, 组内其它进程的组ID仍然是之前的ID, 即不存在进程组长了.

     2. fork()一个子进程后,子进程的组ID为父进程的组ID. 可以通过setpgid()来更改.

     3. shell 中执行一个后台命令, 则会创建一个进程&进程组

     4. shell 中执行一个前台命令, 则会创建一个进程&进程组, 如果有管道, 则所有的管道命令在同一个进程组

        5. 一个终端所有的前后台进程组的进程都有一个session中, 拥有相同的session id. 通过setsid()可以创建一个无终端的新会话.

      6. 从下图可以看到, bash的pid=pgid=sid, 显然bash就是一个session的头, 是bash提供了一个交互式的环境. 意即"终端退出" = "Session退出" 

      

     7. jobs不是一个可执行文件, 应该是bash内置的一个命令, bash在执行一个后台命令时,如&, 内部就会记录一个job. 所以jobs是bash的内部命令

      whereis find, 输出如下:

      

      whereis jobs, 输出如下:

      

      可见jobs并不是一个bin,而是bash的内置变量. 它并不根据PGID来统计,而是根据提交给bash的后台命令.

      

  • 相关阅读:
    win10 uwp 模拟网页输入
    PHP prev() 函数
    PHP pos() 函数
    PHP next() 函数
    PHP natsort() 函数
    PHP natcasesort() 函数
    virtualenv
    自古枪兵幸运E
    win10 uwp DataContext
    win10 uwp DataContext
  • 原文地址:https://www.cnblogs.com/tekkaman/p/3340479.html
Copyright © 2011-2022 走看看