ps axj | head -n 1
进程组
一个或多个进程的集合
只要在某个进程组中⼀个进程存在,则该进程组就存在,这与其组⻓进程是否终⽌⽆关。
作业
⼀个前台作业可以由多个进程组成
一个后台也可以由多个进程组成
==作业与进程组的区别==:
- 如果作业中的某个进程⼜创建了⼦进程,则⼦进程不属于作业。
- 比如创建了父子进程,kill掉父进程后,子进程还在,但子进程不属于作业。
- 以下可以让其成为后台进程
a.out &
会话
SID
会话(Session)是⼀个或多个进程组的集合。
建⽴与控制终端连接的会话⾸进程被称为控制进程,比如shell
一个会话中的⼏个进程组可被分为⼀个前台进程组以及⼀个或多个后台进程组
所以⼀个会话中,应该包括控制进程(会话⾸进程),⼀个前台进程组和任意后台进程组
注意:一个会话不一定有终端
作业控制
jobs 查看作业
fg num 提到前台
bg num 放到后台
ctrl+z 提到后台
ctrl+c 杀掉的不是杀进程,⽽是杀掉整个作业
守护进程
守护进程也称精灵进程(Daemon),是运⾏在后台的⼀种特殊进程。
它独⽴于控制终端并且周期性地执⾏某种任务或等待处理某些发⽣的事件。
创建守护进程:pid_t setsid(void);
调⽤这个函数之前,当前进程不允许是进程组的Leader,否则该函数返回-1
daemon函数