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'激活的作业.
+表示该进程是在放入后台之前运行的最后一个进程. - 意味着它在投入背景之前是倒数第二.
如果您执行"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)
注意最后一行,其中+和 - 改变了位置.