在tty终端中,我们看到的都是“前台”,那如何将命令放到后台执行?
为了测试,准备脚本sleep_test,也可以用命令sleep代替测试脚本。
- 在命令后面加字符“&”,将命令放到后台执行:
bash sleep 10 > /dev/null &
运行之后,会有一个job number显示出来。
调用jobs可以看到当前在后台运行的job。其中
hym@hympc:~/test$ bash sleep 104 > /dev/null &
[7] 14230
# 加号(+)表示最近塞进jobs的job,也是命令fg调用的时候默认调用回前台的job。减号表示第二近塞进jobs的job。
hym@hympc:~/test$ jobs
[3] Running bash sleep 100 > /dev/null &
[4] Running bash sleep 101 > /dev/null &
[5] Running bash sleep 102 > /dev/null &
[6]- Running bash sleep 103 > /dev/null &
[7]+ Running bash sleep 104 > /dev/null &
#jobs %JOB_NUM/+/-; jg JOB_NUM; 调用对应的job
hym@hympc:~/test$ jobs %3
[3] Running bash sleep 103 > /dev/null &
hym@hympc:~/test$ fg 2
bash sleep 102 > /dev/null
hym@hympc:~/test$ jobs
[1] Running bash sleep 100 > /dev/null &
[3] Running bash sleep 103 > /dev/null &
[4]- Running bash sleep 104 > /dev/null &
[5]+ Running bash sleep 105 > /dev/null &
hym@hympc:~/test$ jobs -
[4]- Running bash sleep 104 > /dev/null &
hym@hympc:~/test$ jobs
[1] Running bash sleep 100 > /dev/null &
[3] Running bash sleep 103 > /dev/null &
[4]- Running bash sleep 104 > /dev/null &
[5]+ Running bash sleep 105 > /dev/null &
hym@hympc:~/test$ jobs +
[5]+ Running bash sleep 105 > /dev/null &