后台作业的作业ID之后的后缀“+”和“ – ”是什么意思?

当我运行几个后台进程时,我的命令jobs输出是例如:

 [1]- RUNNING nohup somecommand1 & [2]+ RUNNING nohup somecommand2 & 

工作编号之后的“+”和“ – ”是什么意思?

Solutions Collecting From Web of "后台作业的作业ID之后的后缀“+”和“ – ”是什么意思?"

这是在STDOUT下的工作页面:

 > man jobs 

字符“+”表示将用作fg或bg实用程序的默认作业; 这个工作也可以使用job_id%+或者“%%”来指定。 字符“ – ”表示当前默认作业将退出时将成为默认作业的作业; 这个工作也可以使用job_id% – 来指定。

所以用“+”标记的工作就是由“fg”激活的工作。

+意味着这个过程是在放入后台之前运行的最后一个过程。 这意味着这是第二次在投入背景之前。

如果你做的是“fg”,你的工作号码2(+)将会被放到前台,除非你明确声明“fg%1”,这将把工作放到前台。

例:

 rock:$ sleep 30m & [1] 25808 [1002 ~] rock:$ sleep 45m & [2] 25813 [1003 ~] rock:$ jobs [1]- Running sleep 30m & [2]+ Running sleep 45m & [1004 ~] rock:$ fg sleep 45m [2]+ Stopped sleep 45m [1005 ~] rock:$ jobs [1]- Running sleep 30m & [2]+ Stopped sleep 45m [1006 ~] rock:$ fg %1 sleep 30m [1]+ Stopped sleep 30m [1007 ~] rock:$ jobs [1]+ Stopped sleep 30m [2]- Stopped sleep 45m 

注意最后一行,其中+和 – 改变的地方。