Unix中的作业和进程有什么区别?

时间:2010-04-27 05:11:13

标签: unix

Unix中的作业进程之间有什么区别?你能举个例子吗?

7 个答案:

答案 0 :(得分:10)

作业是由shell启动的进程。 shell在作业表中跟踪这些内容。 jobs命令显示活动后台进程列表。他们得到的jobspec号码不是流程的pid。像fg这样的命令使用jobspec id。

本着JürgenHötzel的榜样:

find $HOME | sort &
[1] 15317
$ jobs
[1]+  Running                 find $HOME | sort &
$ fg
find $HOME | sort
  C-c C-z
[1]+  Stopped                 find $HOME | sort
$ bg 1
[1]+ find $HOME | sort &

亲自尝试一下这些示例并查看手册页。

答案 1 :(得分:8)

Process Group可被视为作业。例如,您在shell中创建后台进程组:

$ find $HOME|sort &
[1] 2668

您可以将两个流程视为新流程组的成员:

$ ps -p 2668 -o cmd,pgrp 
CMD                          PGRP
sort                         2667


$ ps -p "$(pgrep -d , -g 2667)" -o cmd,pgrp
CMD                          PGRP
find /home/juergen           2667
sort                         2667

你也可以杀死整个过程组/工作:

$ pkill -g 2667

答案 2 :(得分:6)

http://en.wikipedia.org/wiki/Job_control_%28Unix%29

  

在工作控制设施的影响下的流程被称为工作。

答案 3 :(得分:2)

http://en.wikipedia.org/wiki/Job_control_%28Unix%29

作业是一个或多个作为“作业”组合在一起的进程,其中作业是UNIX shell概念。

答案 4 :(得分:0)

作业由多个串行或并行运行的进程组成。流程是一个正在执行的程序。

答案 5 :(得分:0)

我认为工作是一个预定的流程或一组流程,一个工作总是有计划的概念,否则我们可以称之为一个流程。

答案 6 :(得分:0)

作业是一个或多个进程,这些进程被分组为一个“作业”,其中作业是UNIX Shell概念。作业由多个串行或并行运行的进程组成。而 进程是正在执行的程序。工作是当您想了解从当前shell启动的进程时。