(一)

参考 :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关闭的影响。

sid, pid, gid的更多相关文章

  1. ORACLE sid,pid,spid总结

    概念上:1.spid (system process id)  是操作系统层面的进程id .2.pid(process id)  这个是基于oracle的进程id个人理解为就是oracle给自己的进程 ...

  2. Redis Codis 部署安装

    背景 关于Redis的高可用除了只身的Sentinel和Cluster之外,还有一个用的比较多的是Codis,由于公司的Redis大部分都使用Codis,本文就针对Codis进行相关的安装部署进行说明 ...

  3. Android2.2源码init机制分析

    1 源码分析必备知识 1.1 linux内核链表 Linux内核链表的核心思想是:在用户自定义的结构A中声明list_head类型的成员p,这样每个结构类型为A的变量a中,都拥有同样的成员p,如下: ...

  4. 进程、轻量级进程(LWP)、线程

    进程.轻量级进程(LWP).线程 进程:程序执行体,有生命期,用来分配资源的实体 线程:分配CPU的实体. 用户空间实现,一个线程阻塞,所有都阻塞. 内核实现,不会所用相关线程都阻塞.用LWP实现,用 ...

  5. 十周周末总结 MySQL的介绍与使用

    python 十周周末总结 MySQL的介绍与使用 MySQL字符编码与配置文件 查看数据库的基本信息(用户,字符编码) /s windos下MySQL默认的配置文件 my_default.ini 修 ...

  6. Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题

    在复杂的主机与网络环境中,我们可能会接触到多种主机与操作系统,配合Windows Server 2008 R2的原生“NFS服务器”功能可以让这样的复杂操作系统更方便应用. 然而面对网络上众多的帮助指 ...

  7. sql monitor生成不了报告& FFS hint不生效两个问题思考

    事情的发生就是这么偶然,一步步的深入才能汲取到更深入的知识~~ -------------------START------------------------------------------- ...

  8. delete语句跑了3个小时分析以及关于并行的一些知识

    =====================START==================================== 闲来无事,看了下数据库跑的long running sql, SQL> ...

  9. Android 通过JNI实现守护进程,使得Service服务不被杀死

    来自: http://finalshares.com/read-7306 转载请注明出处: http://blog.csdn.net/yyh352091626/article/details/5054 ...

随机推荐

  1. hdu3987,最小割时求最少割边数

    题意:求最小割时候割边最少的数量.算法:先求dinic一遍,跑出残网络,再把该网络中满流量(残量为0)的边 残量改为1,其他边残量改为无穷,则再跑一次最大流,所得即为答案.(思,最小割有喝多组,但是要 ...

  2. cef network-settings

    Network Settings 目录 1 System network settings 2 Preference service for network settings 3 Command-li ...

  3. Linux下xz与tar的区别

    同一文件,tar.xz格式比tar.gz格式小了三分之一! 说明: xz是一个使用LZMA压缩算法的无损数据压缩文件格式. 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标 ...

  4. 【深入Java虚拟机】之三:类初始化

    类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码.虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化: 遇到new.getstatic.putstatic ...

  5. fatal error C1189: #error : core.hpp header must be compiled as C++

    两次opencv工程需要设置为C++编译:找了一半天的解决方法. I am building a C application that uses OpenCV. when compiling, I g ...

  6. BUPT复试专题—字符串处理(2016)

    题目描述 有以下三种操作. (1)COPY l r(0<=l<=r<n),n代表s串的长度.这个表示将s串从l到r的序列复制到剪贴板t里面,覆盖t字符串. 例如s为abcde     ...

  7. react 中的无状态函数式组件

    无状态函数式组件,顾名思义,无状态,也就是你无法使用State,也无法使用组件的生命周期方法,这就决定了函数组件都是展示性组件,接收Props,渲染DOM,而不关注其他逻辑. 其实无状态函数式组件也是 ...

  8. 微信小程序 开发环境配置

    1.注册小程序 (1)微信公众平台:https://mp.weixin.qq.com/(2)立即注册 (3)流程 (4)小程序注册 (5)填写相关信息,并去邮箱激活.这样小程序的账号就注册完成了. 2 ...

  9. Flex4_操作XML

    一.创建XML类 1.把字符串对象转换为XML: var xmlStr:String="<students><student><name>吕布</n ...

  10. php新版本号废弃 preg_replace /e 修饰符

    近期serverphp版本号升级到了 5.6  发现出了非常多警告 preg_replace(): The /e modifier is deprecated, use preg_replace_ca ...