您的位置:首页 > 运维架构 > Linux

linux前后台任务切换

2014-09-09 14:53 302 查看
Linux bash shell单一终端界面下,我们经常需要管理或同时完成多个作业,如一边执行编译,一边实现数据备份,以及执行SQL查询等其他的任务。所有的上述的这些工作我们可以在一个bash内实现,也就是说在同一个终端窗口完成。下面主要描述了Linux下前后台作业切换与管理以及作业在脱机的情形下如何管理。

1、前后台作业的定义

前后台作业实际上对应的也就是前后台进程,因此也就有对应的pid。在这里我们统称为作业。

无论是前台作业还是后台作业,两者都来自当前的shell,是当前shell的子程序。

下面是两者的定义。

前台作业:可以由用户参与交互及控制的作业我们称之为前台作业。

后台作业:在内存可以自运行的作业,用户无法参与交互以及使用[ctrl]+c来终止,只能通过bg或fg来调用该作业。

2、几个常用的作业命令

a、command & 直接让作业进入后台运行

b、[ctrl]+z 将当前作业切换到后台

c、jobs 查看后台作业状态

d、fg %n 让后台运行的作业n切换到前台来

d、bg %n 让指定的作业n在后台运行

e、kill %n 移除指定的作业n

"n" 为jobs命令查看到的job编号,不是进程id。

每一个job会有一个对应的job编号,编号在当前的终端从1开始分配。

job 编号的使用样式为
,后面可能会跟有 "+" 号或者 "-" 号,或者什么也不跟。

"+" 号表示最近的一个job,"-" 号表示倒数第二个被执行的Job。注,"+" 号与 "-" 号会随着作业的完成或添加而动态发生变化。

通过jobs方式来管理作业,当前终端的作业在其他终端不可见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: