为什么Unix系统需要作业控制?例如,我们可以在命令中使用进程号或作业号(jobspec) kill
。
$ sleep 101 &
[1] 19
$ sleep 102 &
[2] 20
$ jobs -l
[1]- 19 Running sleep 101 &
[2]+ 20 Running sleep 102 &
$ kill %1
$ kill 20
[1]- Terminated sleep 101
$ jobs -l
[2]+ 20 Terminated sleep 102
$
但是,当进程号已经可以从所有 shell 访问时,为什么还要有一个称为作业号的概念呢?