进程间有什么关系呢?我们都知道使用fork函数创建进程是一次调用两次返回。父进程返回子进程的进程ID(非0),子进程返回0值。很显然,使用fork创建出来的两个进程是父子关系。那如果两个进程都是同一个父进程创建出来的,它们是什么关系呢?“兄弟”关系。那么,两个或者多个进程之间,都有什么关系呢?
在介绍进程间关系之前先介绍两个重要的概念
:
前台进程与后台进程
我们输入的命令由bash帮我们执行相应的程序,但是
当我们使用./命令将自己的写的可执行程序执行起来,在程序运行结束之前,我们输入命令都没有反应,这是为什么呢?
因为shell可以运行一个前台(进程)和任意多个后台(进程)。
我将进程两个字用括号括起来了,因为这么说还不是很准确,等会再做更正。
前台正在运行我们自己的程序,那么bash就只能被提到后台去了。而只有前台进程才可以收到来自控制端的数据,此时处于后台的bash是接收不到我们输入的命令的。
我们执行一个程序,会默认把它放到前台,有时候我们希望将一个进程放到后台去执行,
只需要在执行程序后边再加一个 & 就可以将一个程序放到后台去执行了
。如果想要
将后台进程提到前台,使用
命令fg n
n是该后台进程的编号,
可以通过命令 jobs 查看当前后台正在运行的进程。

除了将后台进程提到前台,还可以
使用命令 bg
将前台进程提到后台,

进程组