终端与进程
为了以后更好的在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一下,可以发现第二个终端子进程全部被释放了(对比上一张图)
然后也就多少能理解下面这张进程关系图了
天哪,大四了