作业的概念
一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
作业的类别
- 前台作业:通过终端启动,且启动后一直占据终端的作业;
- 后台作业:可以通过终端启动,但启动后立即转入后台运行(释放终端);
让作业运行于后台
- 对于运行中的作业,直接使用
CTRL + Z
,之后可以通过fg
命令将后台作业切换到前台; - 对于尚未启动的作业,直接在要执行的命令后加上
&
即可将作业启动到后台;
此类作业虽然被送往后台,但其依然与终端相关,作业会随终端的终止而终止。
如果希望作业送往后台后,剥离与终端的关系,可使用 nohup COMMAND &
。
查看后台作业
使用 jobs
命令可查看后台的作业列表。
例:
我先后将 vim anaconda-ks.cfg
、top
、dstat
进程通过 CTRL + Z
送往后台,然后执行 jobs
,结果如下:
- 上述作业列表中
1
、2
、3
为作业编号; +
标识的作业表示执行fg
命令默认切换到前台的作业;-
标识的作业表示执行fg
命令第二个切换到前台的作业;
作业控制
下面命令中的
%
号大多数情况时可省的,但建议不要省,因为%
其实是用来和进程做区分的。
切换作业到前台
使用 fg
命令可将后台的指定作业切换到前台,使用格式如下:
fg [[%]job_num]
job_num:作业编号,指定时表示切换该编号的作业到前台,省略时切换 jobs 列表中 + 标识的进程到前台;
让后台作业继续运行
使用 bg
命令可让在后台处于停止状态的作业继续在后台运行,使用格式如下:
fg [[%]job_num]
job_num:作业编号,让该编号的作业继续在后台运行;
终止后台作业
终止后台作业也可使用 kill
命令,使用格式如下:
kill [%job_num]
job_num:作业编号,终止该编号的作业,% 号不可省略;
评论区