(一)

参考 :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. HDU1800 Flying to the Mars 【贪心】

    Flying to the Mars Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  2. Angularjs: call other scope which in iframe

    Angularjs: call other scope which in iframe -------------------------------------------------------- ...

  3. Linux下的ELF可执行文件的格式解析 (转)

    LInux命令只是和Kernel一起被编译进操作系统的存在于FS的ELF格式二进制文件,或者权限足够的脚本,或者一个软链 ELF(Executable and Linking Format)是一种对象 ...

  4. zookeeper 服务端上下线,客户端感知

    package pfs.y2017.m11.zookeeper.demo03; import java.util.ArrayList; import java.util.List; import or ...

  5. LeetCode_DP_Word Break II

    LeetCode_Word Break II 一.题目描写叙述: 二.解决思路: 题目要求我们要在原字符串中加空格,使得隔开的每一个词都是词典中的词. 所以我们大能够按顺序扫描每一个字符.可是然后当碰 ...

  6. 关于数组类型的json解析方法

    遇到了非常奇葩的数组类型的json,一时解析不出来,用jsonObject会直接报错. Json数据如: [{"id":"1000142","name ...

  7. MYSQL使用inner join 进行 查询/删除/修改示例

    代码如下: --查询 SELECT tp.tp_id, tp.tpmc, tp.leveid, tp.tpdz, tp.jgm, tp.scsj, tp.pbzyid, tp.ksbfsj, tp.j ...

  8. mysqld与mysqld_safe的区别

    文章1: 直接运行mysqld程序来启动MySQL服务的方法很少见,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它.用mysqld_safe脚本来启动M ...

  9. 项目Beta冲刺(团队5/7)

    项目Beta冲刺(团队5/7) 团队名称: 云打印 作业要求: 项目Beta冲刺(团队) 作业目标: 完成项目Beta版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 陈宇 ...

  10. POJ 2886 Who Gets the Most Candies?(树状数组+二分)

    题目链接 注意题目中给的顺序是顺时针的,所以在数组中应该是倒着存的.左就是顺时针,右就是逆时针.各种调试之后,终于A了,很多种情况考虑情况. #include <cstring> #inc ...