前面我们学习了进程,线程,信号等相关内容,今天我们要引入一个新的概念——作业,那么什么是作业呢?当我们在Linux的shell中运行程序时,这个程序就可以看成是一个作业了,可以这么说shell控制的是作业,而不是进程,而且shell还可以分前后台对作业进行控制,所以,今天我们就来谈一谈Linux下面的作业控制。
什么是进程组
要弄明白作业这个概念,首先我们必须要了解进程组,那么什么是进程组呢?
熟悉Linux的应该都知道,进程不光有进程pid,它还属于一个专门的进程组,其中进程组id在Linux下被称为PGID,如果进程的id等于该进程的进程组的组id,那么这个进程被称为组长进程。但是组长进程和进程的生命周期是没有关系的,另外,当一个进程创建一个进程组时,那么创建进程组的这个进程就是组长进程;最后,进程的生命周期之和进程组中的最后一个进程有关。
还有一点就是,在shell下,我们通过shell控制的是作业或者进程组,而不是进程。
如上