zoukankan      html  css  js  c++  java
  • sid, pid, gid

    (一)

    参考 :https://unix.stackexchange.com/questions/18166/what-are-session-leaders-in-ps

    命令: ps xao pid,ppid,pgid,sid,comm 显示所有ID,添加uid可以显示user id

    或者名令:ps -eaf显示,usr,pid,ppid

    leveldb@river:~/store$ ps xao pid,ppid,pgid,sid,comm
    PID PPID PGID SID COMMAND
    1    0    1 1   init
    2    0    0 0   kthreadd
    3    2    0 0   ksoftirqd/0
    5    2    0 0   kworker/0:0H
    7    2    0 0   rcu_sched
    8    2    0 0   rcuos/0

    问题:init进程的父进程id是0,这是什么进程?

    答:https://unix.stackexchange.com/questions/83322/which-process-has-pid-0 。0号进程是swapper or sched,是一个内核的一部分,而非用户态进程。init进程是内核激发的第一个进程。

       2号进程父进程也是0,不是init进程是所有进程的祖宗吗?

    答:2号进程也是由内核创建,和1号进程一起是两个直接由内核创建的进程。或者说,1号进程是所有用户进程的祖先,2号进程是所有内核进程的祖先。

      其他进程基本都是2号进程的子进程!?

    (二)sid

    session的概念。

    一个进程调用了setsid()后,他就创建一个新的session,并成为这个新session的领导。但是一个group的领导是不能这样做的,因为这样的话,group的领导将他自己脱离了原来的session,加入了另一个session,这样两个session就有一个同样的group,这违背了原则。

    所以,创建后台damon的通用做法是这样的。进程首先fork,fork后父进程退出,子进程称为了init的子进程,并不属于任何group的领导,但这时候子进程仍然处于当前terminal的session中,会随着terminal的关闭而关闭,如果此时子进程调用setsid()创建一个新的session,那么就会成为后台damon,不受当前terminal关闭的影响。

  • 相关阅读:
    codeforce1214E Petya and Construction Set
    codeforces1214D Treasure Island
    CCPC2019网络赛1002 array (主席树)
    POJ2442
    计算机网络-应用层(3)Email应用
    计算机网络-应用层(2)FTP协议
    计算机网络-应用层(1)Web应用与HTTP协议
    算法-排序(1)k路平衡归并与败者树
    算法-搜索(6)B树
    RSA加密算法和SSH远程连接服务器
  • 原文地址:https://www.cnblogs.com/bettersky/p/6759548.html
Copyright © 2011-2022 走看看