每个进程都是被另一个进程开启(或者fork)的。有一个特殊的根进程(叫做“init”)是当你的系统第一次引导时直接被内核开启的。

在这种形式下,运行在系统上进程的集合形成了一个以init进程为根的“进程树”。每个进程有一个父进程和潜在的多个子进程。

比如,每次你在bash提示符下运行一个命令时,bash将fork一个新进程去运行你的命令,这个新进程成为了当前bash进程的子进程。

同样,当你看到一个“log in”提示符时,实际上是login命令在运行;如果你登录成功,login命令将fork一个新进程来执行登录用户shell。

ps命令可以显示一个平面的进程列表,如果你想看树状显示可以用pstree命令。以下是一些从Ubuntu的web服务器输出的例子:

$ pstree
init─┬─atd├─cron├─dbus-daemon├─dhclient├─getty├─mysqld_safe───mysql├─nginx───nginx├─ntpd├─rsyslogd───3*[{rsyslogd}]├─ruby─┬─4*[ruby───{ruby}]│      └─{ruby}├─sshd─┬─sshd───bash│      └─bash───pstree├─systemd-logind├─systemd-udevd├─upstart-file-br├─upstart-socket-└─upstart-udev-br
$

你也可以运行ps auxf来查看树状显示,尽管输出不够用户友好。

原文链接:https://enkipro.com//insight/575eea77275299ad3b909520

转载于:https://blog.51cto.com/smellyman/1900952

进程树--用Enki学Linux系列(18)相关推荐

  1. linux网络接口是什么,网络接口是什么?What Is A Network Interface?--用Enki学Linux系列(1)...

    每个Linux系统都有很多的网络接口,用来与物理或虚拟网络设备通信.例如,你的电脑有一块以太网卡和一块无线网卡,那么每个网卡都会有一个网络接口(默认情况). ifconfig命令会列出网络接口的当前状 ...

  2. head和tail命令--用Enki学Linux系列(8)

    head和tail命令 head和tail是让你分别选择并显示一个文件或者输出流中的最开始或者最后几行,默认是选10行,但使用-n参数你可以指定其他数目. 比如你可以用tail来选择一个日志文件的最后 ...

  3. 使用dd命令测试CPU性能--用Enki学Linux系列(16)

    dd命令也可以作为一个简单的CPU性能测试工具来使用!你可以用如下方法运行这个"开箱即用"的功能: $ dd if=/dev/zero bs=1M count=1024 | md5 ...

  4. 使用vmstat命令监视系统内存--用Enki学Linux系列(14)

    vmstat使用户监视如进程,内存,页面,IO块,陷阱,磁盘和CPU活动. 用户可指定监视取样的周期. $ vmstat 1 procs -----------memory---------- --- ...

  5. 修改系统时区(基于Debian的系统)--用Enki学Linux系列(15)

    在你的基于Debian的系统上修改时区你可以执行下面操作然后一个互动菜单会出现在你的终端上: $ sudo dpkg-reconfigure tzdata 你也可以用同样命令在UTC/GMT之间转换. ...

  6. 查看系统架构是32位还是64位--用Enki学Linux系列(15)

    最简单的方式是执行: $ uname -m 这将输出 x86_64 或者 i386/i586/i686. 你可以使用-a参数获得更多内容: $ uname -a 32位系统的结果: Linux XXX ...

  7. 使用ps命令输出进程列表--用Enki学Linux系列(17)

    ps命令(process status的缩写)用于显示关于当前运行中的进程. 不加参数时,ps显示所有当前用户开启的进程. 比如: console$ psPID TTY TIME CMD 20094 ...

  8. 使用ping命令查看网络延迟--用Enki学Linux系列(7)

    使用ping命令查看网络延迟 Using ping To Measure Network Latency ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间.如果流量因为网络故障或者错 ...

  9. 快速调用编辑器来写一条长,复杂或难的命令--用Enki学Linux系列(5)

    快速调用编辑器来写一条长,复杂或难的命令 Rapidly invoke an editor to write a long, complex, or tricky command 下次当你需要用she ...

最新文章

  1. Windows Azure Web Site (9) Web Site公网IP地址
  2. ansible安装部署_运维日记|使用ansible批量部署crontab定时删归档任务
  3. linux系统安装宝塔面板
  4. pytorch实现常用的一些即插即用模块(长期更新)
  5. 台积电预计汽车芯片短缺在下一季度将有明显改善 他们已协调产能支持
  6. 鸢尾花分类_基于鸢尾花(iris)数据集的逻辑回归分类实践
  7. python数字转字符串固定位数_python-将String转换为64位整数映射字符以自定...
  8. 作为一个销售人员,要做到这些
  9. javascript时间戳转换成yyyy-MM-DD格式
  10. 在正常系统如windows/MacOS/Linux等体验假勒索病毒WamaCry(永恒之蓝)
  11. spss数据统计分析工具IBM SPSS Statistics 26 for Mac安装教程
  12. 淘宝数据分析必须知道的15个核心问题
  13. 面向对象(OOP)概念理解,通俗易懂
  14. 如何改写(paraphrase)英文句子?
  15. XP硬盘读写速度很慢的解决方法
  16. Google开放星空观测应用SkyMap源代码
  17. Java多线程实现的两种方式
  18. MATLAB小技巧(25)竞争神经网络与SOM神经网络
  19. 对薛兆丰经济学思维的研究:价格的教益
  20. windows下安装weblogic11g集群 BEA-149509报错

热门文章

  1. 在开启bin-log日志下Mysql报错
  2. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
  3. CentOS网络配置与重启方法
  4. mysql 前端proxy_【4.分布式存储】-mysql及proxy
  5. python遍历数组冒泡排序_Python算法(一) 数组冒泡排序(难度等级:easy)
  6. freerdp 解压安装_Linux下安装FreeRDP,连接windows远程桌面的好软件 | 学步园
  7. linux 没有windows.h头文件_宋宝华: Linux内核编程广泛使用的前向声明(Forward Declaration)...
  8. 前端系统化学习【JS篇】:(四-3)基本数据类型之Boolean篇
  9. 高级点的php书,深入理解php:高级技巧、面向对象与核心技术(原书第3版) 中文pdf扫描版[76MB]...
  10. python扫描app接口_[分享】python+requests对app和微信小程序进行接口测试