作业的概念
一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
作业的类别
- 前台作业:通过终端启动,且启动后一直占据终端的作业;
- 后台作业:可以通过终端启动,但启动后立即转入后台运行(释放终端);
让作业运行于后台
- 对于运行中的作业,直接使用
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:作业编号,终止该编号的作业,% 号不可省略;
评论区