Linux作为一个多任务环境,允许用户同时执行多项任务,例如查看系统情况、备份资料、编辑文件和打印文件等。 % w) Q0 x/ f4 x+ ^+ K 9 e' _- V4 U# B1 a1 w K 对于耗时长的任务不应该让它在前台任务中执行,而应该交给后台任务去执行。这样前台任务可继续正常运作其它的操作,不用等待。示例如下: ) |, X+ F. l- g g, z + ^, S% q, A' \' l # find / -name testing & 6 E% f/ K( z' ]) v0 O
# q- C1 t, Z8 I# I! j# d # fg : I. y# W/ `8 X8 H* y" f2 |- Q% i6 w/ |7 w+ b/ j+ j5 V
如果想要让上面例子中的任务转为后台执行,就使用“& ”。不过,由于是后台执行的,所以该程序的输出并不会出现在屏幕上。当用户将数个任务放到后台任务执行时,要如何去管理这些后台任务?怎么知道后台任务的执行情况?如何终止或暂时停止后台任务的执行?下面就来逐一说明。 ( K& ^6 v5 B7 O& D. V4 c4 x. K: }! |" K1 u, ^
<B>控制管理</B> " c& }9 V( T% N; n1 ]% M$ ^4 A4 h$ C4 \7 Q4 i+ L) C
举例如下: l# A: V% d+ H9 Y& @
. A; ]+ Q k' q9 y0 D
# du -a /user > user.data & 1 h5 \, i& H7 L. k& ` 2 \9 @$ @$ X' y) u9 \ [1] 237 6 L, I) O v- Y& m( k* k
4 Y" D. H% U" [7 K
# find / -name core -type f -ls > core.data & 5 q' M! j) u0 }7 A
6 ]7 ]% {8 D- r) i9 w' O
[2] 238 ! Z3 F0 z( s; Q7 Z! s, F . {% b, t2 o7 J) F2 h / G ~1 Q4 M2 \+ L" O
7 L; o7 g6 F* u# d- x( T
如上通过“&”命令将三个任务放到后台中执行。用命令“jobs -l”显示后台任务的执行情况,举例如下: 5 ~: m9 T ~9 {2 q
5 [* L g' B/ m/ Q #jobs -l ) `: [. O1 v. z9 I3 x* h7 n 3 U% U# b" R6 ^7 m [1] + 237 Running du -a /user > user.data ( O) M+ R- G7 t. A0 n/ V' |3 d% }
( v* I: u6 |' {# I
[2] - 238 Running find / -name core -type f -ls > core.data " l3 [2 s" ~- ]# n7 J! E1 S
% A* q) x& v) T& R' Q
首先介绍一个任务控制特有的名词:当前任务。上面的当前任务是“du -a /user > user.data”,因为后台任务号码是“[1]”。如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]”的后台任务。所以可以得出一点,即当前任务是会变动的。当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动的均是当前任务。 3 A$ ~0 n8 e( j6 p# T4 ~* J9 ]