Linux C++通信 - 终端与进程

终端与进程

为了以后更好的在Linux上开发,理清进程之间的关系非常重要。


终端与bash进程

终端,通常指的是一个命令行窗口

ps -ef | grep bash

请添加图片描述
由于我是先使用qiye用户后sudo登录至root用户,所以出现了两个独立bash进程,但可以发现的是,两个用户的tty都同为pts/0,说明这两个进程均使用于同个终端。

当我再以相同方式打开一个窗口,一样,ps -ef | grep bash
请添加图片描述
出现pts/1,即一个新终端下的两个独立进程

得到结论:一个终端下可以有多个进程
这时就有一个新想法了,sudo是怎么产生一个新进程给root用的?

看看进程关系,执行 ps -la
请添加图片描述
可以发现,sudo到root是有一个中传的,sudo是使用su登录到root,而且仔细观察他们的PID(子进程)、PPID(父进程),他们是一个树形结构的关系,每一次使用命令就是启动一个子进程,只不过一些命令执行完就会被释放,所以我们ps -la看不到他们的身影。

此时,我退出第二个终端的root用户,即exit一下,可以发现第二个终端子进程全部被释放了(对比上一张图)
请添加图片描述

然后也就多少能理解下面这张进程关系图了

请添加图片描述


天哪,大四了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值