后台作业的作业ID后面的后缀"+"和" - "是什么意思?

Ben*_*min 11 unix linux bash shell

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

[1]-  RUNNING                  nohup somecommand1 &
[2]+  RUNNING                  nohup somecommand2 &
Run Code Online (Sandbox Code Playgroud)

作业id之后的"+"和" - "字符是什么意思?

iba*_*bab 15

它位于STDOUT下的工作的手册页中:

> man jobs
Run Code Online (Sandbox Code Playgroud)

字符"+"标识将用作fg或bg实用程序的默认值的作业; 也可以使用job_id%+或"%%"指定此作业.如果当前默认作业要退出,则字符" - "标识将成为默认值的作业; 也可以使用job_id% - 指定此作业.

所以用'+'标记的作业是由'fg'激活的作业.

  • 谢谢!你肯定有更好的Linux发行版.当我点击"男人的工作"时,我只得到一个非常简短的参数描述. (2认同)

bos*_*bos 5

+表示该进程是在放入后台之前运行的最后一个进程. - 意味着它在投入背景之前是倒数第二.

如果您执行"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
Run Code Online (Sandbox Code Playgroud)

注意最后一行,其中+和 - 改变了位置.